root/drivers/pinctrl/mediatek/pinctrl-mt8183.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. mt8183_pinctrl_probe
  2. mt8183_pinctrl_init

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * Copyright (C) 2018 MediaTek Inc.
   4  *
   5  * Author: Zhiyong Tao <zhiyong.tao@mediatek.com>
   6  *
   7  */
   8 
   9 #include "pinctrl-mtk-mt8183.h"
  10 #include "pinctrl-paris.h"
  11 
  12 /* MT8183 have multiple bases to program pin configuration listed as the below:
  13  * iocfg[0]:0x10005000, iocfg[1]:0x11F20000, iocfg[2]:0x11E80000,
  14  * iocfg[3]:0x11E70000, iocfg[4]:0x11E90000, iocfg[5]:0x11D30000,
  15  * iocfg[6]:0x11D20000, iocfg[7]:0x11C50000, iocfg[8]:0x11F30000.
  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,      \
  21                        _x_bits, 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,      \
  25                       _x_bits, 32, 1)
  26 
  27 static const struct mtk_pin_field_calc mt8183_pin_mode_range[] = {
  28         PIN_FIELD(0, 192, 0x300, 0x10, 0, 4),
  29 };
  30 
  31 static const struct mtk_pin_field_calc mt8183_pin_dir_range[] = {
  32         PIN_FIELD(0, 192, 0x0, 0x10, 0, 1),
  33 };
  34 
  35 static const struct mtk_pin_field_calc mt8183_pin_di_range[] = {
  36         PIN_FIELD(0, 192, 0x200, 0x10, 0, 1),
  37 };
  38 
  39 static const struct mtk_pin_field_calc mt8183_pin_do_range[] = {
  40         PIN_FIELD(0, 192, 0x100, 0x10, 0, 1),
  41 };
  42 
  43 static const struct mtk_pin_field_calc mt8183_pin_ies_range[] = {
  44         PINS_FIELD_BASE(0, 3, 6, 0x000, 0x10, 3, 1),
  45         PINS_FIELD_BASE(4, 7, 6, 0x000, 0x10, 5, 1),
  46         PIN_FIELD_BASE(8, 8, 6, 0x000, 0x10, 0, 1),
  47         PINS_FIELD_BASE(9, 10, 6, 0x000, 0x10, 12, 1),
  48         PIN_FIELD_BASE(11, 11, 1, 0x000, 0x10, 3, 1),
  49         PIN_FIELD_BASE(12, 12, 1, 0x000, 0x10, 7, 1),
  50         PINS_FIELD_BASE(13, 16, 2, 0x000, 0x10, 2, 1),
  51         PINS_FIELD_BASE(17, 20, 2, 0x000, 0x10, 3, 1),
  52         PINS_FIELD_BASE(21, 24, 2, 0x000, 0x10, 4, 1),
  53         PINS_FIELD_BASE(25, 28, 2, 0x000, 0x10, 5, 1),
  54         PIN_FIELD_BASE(29, 29, 2, 0x000, 0x10, 6, 1),
  55         PIN_FIELD_BASE(30, 30, 2, 0x000, 0x10, 7, 1),
  56         PINS_FIELD_BASE(31, 31, 2, 0x000, 0x10, 8, 1),
  57         PINS_FIELD_BASE(32, 34, 2, 0x000, 0x10, 7, 1),
  58         PINS_FIELD_BASE(35, 37, 3, 0x000, 0x10, 0, 1),
  59         PINS_FIELD_BASE(38, 40, 3, 0x000, 0x10, 1, 1),
  60         PINS_FIELD_BASE(41, 42, 3, 0x000, 0x10, 2, 1),
  61         PINS_FIELD_BASE(43, 45, 3, 0x000, 0x10, 3, 1),
  62         PINS_FIELD_BASE(46, 47, 3, 0x000, 0x10, 4, 1),
  63         PINS_FIELD_BASE(48, 49, 3, 0x000, 0x10, 5, 1),
  64         PINS_FIELD_BASE(50, 51, 4, 0x000, 0x10, 0, 1),
  65         PINS_FIELD_BASE(52, 57, 4, 0x000, 0x10, 1, 1),
  66         PINS_FIELD_BASE(58, 60, 4, 0x000, 0x10, 2, 1),
  67         PINS_FIELD_BASE(61, 64, 5, 0x000, 0x10, 0, 1),
  68         PINS_FIELD_BASE(65, 66, 5, 0x000, 0x10, 1, 1),
  69         PINS_FIELD_BASE(67, 68, 5, 0x000, 0x10, 2, 1),
  70         PINS_FIELD_BASE(69, 71, 5, 0x000, 0x10, 3, 1),
  71         PINS_FIELD_BASE(72, 76, 5, 0x000, 0x10, 4, 1),
  72         PINS_FIELD_BASE(77, 80, 5, 0x000, 0x10, 5, 1),
  73         PIN_FIELD_BASE(81, 81, 5, 0x000, 0x10, 6, 1),
  74         PINS_FIELD_BASE(82, 83, 5, 0x000, 0x10, 7, 1),
  75         PIN_FIELD_BASE(84, 84, 5, 0x000, 0x10, 6, 1),
  76         PINS_FIELD_BASE(85, 88, 5, 0x000, 0x10, 8, 1),
  77         PIN_FIELD_BASE(89, 89, 6, 0x000, 0x10, 11, 1),
  78         PIN_FIELD_BASE(90, 90, 6, 0x000, 0x10, 1, 1),
  79         PINS_FIELD_BASE(91, 94, 6, 0x000, 0x10, 2, 1),
  80         PINS_FIELD_BASE(95, 96, 6, 0x000, 0x10, 6, 1),
  81         PINS_FIELD_BASE(97, 98, 6, 0x000, 0x10, 7, 1),
  82         PIN_FIELD_BASE(99, 99, 6, 0x000, 0x10, 8, 1),
  83         PIN_FIELD_BASE(100, 100, 6, 0x000, 0x10, 9, 1),
  84         PINS_FIELD_BASE(101, 102, 6, 0x000, 0x10, 10, 1),
  85         PINS_FIELD_BASE(103, 104, 6, 0x000, 0x10, 13, 1),
  86         PINS_FIELD_BASE(105, 106, 6, 0x000, 0x10, 14, 1),
  87         PIN_FIELD_BASE(107, 107, 7, 0x000, 0x10, 0, 1),
  88         PIN_FIELD_BASE(108, 108, 7, 0x000, 0x10, 1, 1),
  89         PIN_FIELD_BASE(109, 109, 7, 0x000, 0x10, 2, 1),
  90         PIN_FIELD_BASE(110, 110, 7, 0x000, 0x10, 0, 1),
  91         PIN_FIELD_BASE(111, 111, 7, 0x000, 0x10, 3, 1),
  92         PIN_FIELD_BASE(112, 112, 7, 0x000, 0x10, 2, 1),
  93         PIN_FIELD_BASE(113, 113, 7, 0x000, 0x10, 4, 1),
  94         PIN_FIELD_BASE(114, 114, 7, 0x000, 0x10, 5, 1),
  95         PIN_FIELD_BASE(115, 115, 7, 0x000, 0x10, 6, 1),
  96         PIN_FIELD_BASE(116, 116, 7, 0x000, 0x10, 7, 1),
  97         PIN_FIELD_BASE(117, 117, 7, 0x000, 0x10, 8, 1),
  98         PIN_FIELD_BASE(118, 118, 7, 0x000, 0x10, 9, 1),
  99         PIN_FIELD_BASE(119, 119, 7, 0x000, 0x10, 10, 1),
 100         PIN_FIELD_BASE(120, 120, 7, 0x000, 0x10, 11, 1),
 101         PIN_FIELD_BASE(121, 121, 7, 0x000, 0x10, 12, 1),
 102         PIN_FIELD_BASE(122, 122, 8, 0x000, 0x10, 0, 1),
 103         PIN_FIELD_BASE(123, 123, 8, 0x000, 0x10, 1, 1),
 104         PIN_FIELD_BASE(124, 124, 8, 0x000, 0x10, 2, 1),
 105         PINS_FIELD_BASE(125, 130, 8, 0x000, 0x10, 1, 1),
 106         PIN_FIELD_BASE(131, 131, 8, 0x000, 0x10, 3, 1),
 107         PIN_FIELD_BASE(132, 132, 8, 0x000, 0x10, 1, 1),
 108         PIN_FIELD_BASE(133, 133, 8, 0x000, 0x10, 4, 1),
 109         PIN_FIELD_BASE(134, 134, 1, 0x000, 0x10, 0, 1),
 110         PIN_FIELD_BASE(135, 135, 1, 0x000, 0x10, 1, 1),
 111         PINS_FIELD_BASE(136, 143, 1, 0x000, 0x10, 2, 1),
 112         PINS_FIELD_BASE(144, 147, 1, 0x000, 0x10, 4, 1),
 113         PIN_FIELD_BASE(148, 148, 1, 0x000, 0x10, 5, 1),
 114         PIN_FIELD_BASE(149, 149, 1, 0x000, 0x10, 6, 1),
 115         PINS_FIELD_BASE(150, 153, 1, 0x000, 0x10, 8, 1),
 116         PIN_FIELD_BASE(154, 154, 1, 0x000, 0x10, 9, 1),
 117         PINS_FIELD_BASE(155, 157, 1, 0x000, 0x10, 10, 1),
 118         PINS_FIELD_BASE(158, 160, 1, 0x000, 0x10, 8, 1),
 119         PINS_FIELD_BASE(161, 164, 2, 0x000, 0x10, 0, 1),
 120         PINS_FIELD_BASE(165, 166, 2, 0x000, 0x10, 1, 1),
 121         PINS_FIELD_BASE(167, 168, 4, 0x000, 0x10, 2, 1),
 122         PIN_FIELD_BASE(169, 169, 4, 0x000, 0x10, 3, 1),
 123         PINS_FIELD_BASE(170, 174, 4, 0x000, 0x10, 4, 1),
 124         PINS_FIELD_BASE(175, 176, 4, 0x000, 0x10, 3, 1),
 125         PINS_FIELD_BASE(177, 179, 6, 0x000, 0x10, 4, 1),
 126 };
 127 
 128 static const struct mtk_pin_field_calc mt8183_pin_smt_range[] = {
 129         PINS_FIELD_BASE(0, 3, 6, 0x010, 0x10, 3, 1),
 130         PINS_FIELD_BASE(4, 7, 6, 0x010, 0x10, 5, 1),
 131         PIN_FIELD_BASE(8, 8, 6, 0x010, 0x10, 0, 1),
 132         PINS_FIELD_BASE(9, 10, 6, 0x010, 0x10, 12, 1),
 133         PIN_FIELD_BASE(11, 11, 1, 0x010, 0x10, 3, 1),
 134         PIN_FIELD_BASE(12, 12, 1, 0x010, 0x10, 7, 1),
 135         PINS_FIELD_BASE(13, 16, 2, 0x010, 0x10, 2, 1),
 136         PINS_FIELD_BASE(17, 20, 2, 0x010, 0x10, 3, 1),
 137         PINS_FIELD_BASE(21, 24, 2, 0x010, 0x10, 4, 1),
 138         PINS_FIELD_BASE(25, 28, 2, 0x010, 0x10, 5, 1),
 139         PIN_FIELD_BASE(29, 29, 2, 0x010, 0x10, 6, 1),
 140         PIN_FIELD_BASE(30, 30, 2, 0x010, 0x10, 7, 1),
 141         PINS_FIELD_BASE(31, 31, 2, 0x010, 0x10, 8, 1),
 142         PINS_FIELD_BASE(32, 34, 2, 0x010, 0x10, 7, 1),
 143         PINS_FIELD_BASE(35, 37, 3, 0x010, 0x10, 0, 1),
 144         PINS_FIELD_BASE(38, 40, 3, 0x010, 0x10, 1, 1),
 145         PINS_FIELD_BASE(41, 42, 3, 0x010, 0x10, 2, 1),
 146         PINS_FIELD_BASE(43, 45, 3, 0x010, 0x10, 3, 1),
 147         PINS_FIELD_BASE(46, 47, 3, 0x010, 0x10, 4, 1),
 148         PINS_FIELD_BASE(48, 49, 3, 0x010, 0x10, 5, 1),
 149         PINS_FIELD_BASE(50, 51, 4, 0x010, 0x10, 0, 1),
 150         PINS_FIELD_BASE(52, 57, 4, 0x010, 0x10, 1, 1),
 151         PINS_FIELD_BASE(58, 60, 4, 0x010, 0x10, 2, 1),
 152         PINS_FIELD_BASE(61, 64, 5, 0x010, 0x10, 0, 1),
 153         PINS_FIELD_BASE(65, 66, 5, 0x010, 0x10, 1, 1),
 154         PINS_FIELD_BASE(67, 68, 5, 0x010, 0x10, 2, 1),
 155         PINS_FIELD_BASE(69, 71, 5, 0x010, 0x10, 3, 1),
 156         PINS_FIELD_BASE(72, 76, 5, 0x010, 0x10, 4, 1),
 157         PINS_FIELD_BASE(77, 80, 5, 0x010, 0x10, 5, 1),
 158         PIN_FIELD_BASE(81, 81, 5, 0x010, 0x10, 6, 1),
 159         PINS_FIELD_BASE(82, 83, 5, 0x010, 0x10, 7, 1),
 160         PIN_FIELD_BASE(84, 84, 5, 0x010, 0x10, 6, 1),
 161         PINS_FIELD_BASE(85, 88, 5, 0x010, 0x10, 8, 1),
 162         PIN_FIELD_BASE(89, 89, 6, 0x010, 0x10, 11, 1),
 163         PIN_FIELD_BASE(90, 90, 6, 0x010, 0x10, 1, 1),
 164         PINS_FIELD_BASE(91, 94, 6, 0x010, 0x10, 2, 1),
 165         PINS_FIELD_BASE(95, 96, 6, 0x010, 0x10, 6, 1),
 166         PINS_FIELD_BASE(97, 98, 6, 0x010, 0x10, 7, 1),
 167         PIN_FIELD_BASE(99, 99, 6, 0x010, 0x10, 8, 1),
 168         PIN_FIELD_BASE(100, 100, 6, 0x010, 0x10, 9, 1),
 169         PINS_FIELD_BASE(101, 102, 6, 0x010, 0x10, 10, 1),
 170         PINS_FIELD_BASE(103, 104, 6, 0x010, 0x10, 13, 1),
 171         PINS_FIELD_BASE(105, 106, 6, 0x010, 0x10, 14, 1),
 172         PIN_FIELD_BASE(107, 107, 7, 0x010, 0x10, 0, 1),
 173         PIN_FIELD_BASE(108, 108, 7, 0x010, 0x10, 1, 1),
 174         PIN_FIELD_BASE(109, 109, 7, 0x010, 0x10, 2, 1),
 175         PIN_FIELD_BASE(110, 110, 7, 0x010, 0x10, 0, 1),
 176         PIN_FIELD_BASE(111, 111, 7, 0x010, 0x10, 3, 1),
 177         PIN_FIELD_BASE(112, 112, 7, 0x010, 0x10, 2, 1),
 178         PIN_FIELD_BASE(113, 113, 7, 0x010, 0x10, 4, 1),
 179         PIN_FIELD_BASE(114, 114, 7, 0x010, 0x10, 5, 1),
 180         PIN_FIELD_BASE(115, 115, 7, 0x010, 0x10, 6, 1),
 181         PIN_FIELD_BASE(116, 116, 7, 0x010, 0x10, 7, 1),
 182         PIN_FIELD_BASE(117, 117, 7, 0x010, 0x10, 8, 1),
 183         PIN_FIELD_BASE(118, 118, 7, 0x010, 0x10, 9, 1),
 184         PIN_FIELD_BASE(119, 119, 7, 0x010, 0x10, 10, 1),
 185         PIN_FIELD_BASE(120, 120, 7, 0x010, 0x10, 11, 1),
 186         PIN_FIELD_BASE(121, 121, 7, 0x010, 0x10, 12, 1),
 187         PIN_FIELD_BASE(122, 122, 8, 0x010, 0x10, 0, 1),
 188         PIN_FIELD_BASE(123, 123, 8, 0x010, 0x10, 1, 1),
 189         PIN_FIELD_BASE(124, 124, 8, 0x010, 0x10, 2, 1),
 190         PINS_FIELD_BASE(125, 130, 8, 0x010, 0x10, 1, 1),
 191         PIN_FIELD_BASE(131, 131, 8, 0x010, 0x10, 3, 1),
 192         PIN_FIELD_BASE(132, 132, 8, 0x010, 0x10, 1, 1),
 193         PIN_FIELD_BASE(133, 133, 8, 0x010, 0x10, 4, 1),
 194         PIN_FIELD_BASE(134, 134, 1, 0x010, 0x10, 0, 1),
 195         PIN_FIELD_BASE(135, 135, 1, 0x010, 0x10, 1, 1),
 196         PINS_FIELD_BASE(136, 143, 1, 0x010, 0x10, 2, 1),
 197         PINS_FIELD_BASE(144, 147, 1, 0x010, 0x10, 4, 1),
 198         PIN_FIELD_BASE(148, 148, 1, 0x010, 0x10, 5, 1),
 199         PIN_FIELD_BASE(149, 149, 1, 0x010, 0x10, 6, 1),
 200         PINS_FIELD_BASE(150, 153, 1, 0x010, 0x10, 8, 1),
 201         PIN_FIELD_BASE(154, 154, 1, 0x010, 0x10, 9, 1),
 202         PINS_FIELD_BASE(155, 157, 1, 0x010, 0x10, 10, 1),
 203         PINS_FIELD_BASE(158, 160, 1, 0x010, 0x10, 8, 1),
 204         PINS_FIELD_BASE(161, 164, 2, 0x010, 0x10, 0, 1),
 205         PINS_FIELD_BASE(165, 166, 2, 0x010, 0x10, 1, 1),
 206         PINS_FIELD_BASE(167, 168, 4, 0x010, 0x10, 2, 1),
 207         PIN_FIELD_BASE(169, 169, 4, 0x010, 0x10, 3, 1),
 208         PINS_FIELD_BASE(170, 174, 4, 0x010, 0x10, 4, 1),
 209         PINS_FIELD_BASE(175, 176, 4, 0x010, 0x10, 3, 1),
 210         PINS_FIELD_BASE(177, 179, 6, 0x010, 0x10, 4, 1),
 211 };
 212 
 213 static const struct mtk_pin_field_calc mt8183_pin_pullen_range[] = {
 214         PIN_FIELD_BASE(0, 3, 6, 0x060, 0x10, 6, 1),
 215         PIN_FIELD_BASE(4, 7, 6, 0x060, 0x10, 11, 1),
 216         PIN_FIELD_BASE(8, 8, 6, 0x060, 0x10, 0, 1),
 217         PIN_FIELD_BASE(9, 10, 6, 0x060, 0x10, 26, 1),
 218         PIN_FIELD_BASE(11, 11, 1, 0x060, 0x10, 10, 1),
 219         PIN_FIELD_BASE(12, 12, 1, 0x060, 0x10, 17, 1),
 220         PIN_FIELD_BASE(13, 28, 2, 0x060, 0x10, 6, 1),
 221         PIN_FIELD_BASE(43, 49, 3, 0x060, 0x10, 8, 1),
 222         PIN_FIELD_BASE(50, 60, 4, 0x060, 0x10, 0, 1),
 223         PIN_FIELD_BASE(61, 88, 5, 0x060, 0x10, 0, 1),
 224         PIN_FIELD_BASE(89, 89, 6, 0x060, 0x10, 24, 1),
 225         PIN_FIELD_BASE(90, 90, 6, 0x060, 0x10, 1, 1),
 226         PIN_FIELD_BASE(95, 95, 6, 0x060, 0x10, 15, 1),
 227         PIN_FIELD_BASE(96, 102, 6, 0x060, 0x10, 17, 1),
 228         PIN_FIELD_BASE(103, 106, 6, 0x060, 0x10, 28, 1),
 229         PIN_FIELD_BASE(107, 121, 7, 0x060, 0x10, 0, 1),
 230         PIN_FIELD_BASE(134, 143, 1, 0x060, 0x10, 0, 1),
 231         PIN_FIELD_BASE(144, 149, 1, 0x060, 0x10, 11, 1),
 232         PIN_FIELD_BASE(150, 160, 1, 0x060, 0x10, 18, 1),
 233         PIN_FIELD_BASE(161, 166, 2, 0x060, 0x10, 0, 1),
 234         PIN_FIELD_BASE(167, 176, 4, 0x060, 0x10, 11, 1),
 235         PIN_FIELD_BASE(177, 177, 6, 0x060, 0x10, 10, 1),
 236         PIN_FIELD_BASE(178, 178, 6, 0x060, 0x10, 16, 1),
 237         PIN_FIELD_BASE(179, 179, 6, 0x060, 0x10, 25, 1),
 238 };
 239 
 240 static const struct mtk_pin_field_calc mt8183_pin_pullsel_range[] = {
 241         PIN_FIELD_BASE(0, 3, 6, 0x080, 0x10, 6, 1),
 242         PIN_FIELD_BASE(4, 7, 6, 0x080, 0x10, 11, 1),
 243         PIN_FIELD_BASE(8, 8, 6, 0x080, 0x10, 0, 1),
 244         PIN_FIELD_BASE(9, 10, 6, 0x080, 0x10, 26, 1),
 245         PIN_FIELD_BASE(11, 11, 1, 0x080, 0x10, 10, 1),
 246         PIN_FIELD_BASE(12, 12, 1, 0x080, 0x10, 17, 1),
 247         PIN_FIELD_BASE(13, 28, 2, 0x080, 0x10, 6, 1),
 248         PIN_FIELD_BASE(43, 49, 3, 0x080, 0x10, 8, 1),
 249         PIN_FIELD_BASE(50, 60, 4, 0x080, 0x10, 0, 1),
 250         PIN_FIELD_BASE(61, 88, 5, 0x080, 0x10, 0, 1),
 251         PIN_FIELD_BASE(89, 89, 6, 0x080, 0x10, 24, 1),
 252         PIN_FIELD_BASE(90, 90, 6, 0x080, 0x10, 1, 1),
 253         PIN_FIELD_BASE(95, 95, 6, 0x080, 0x10, 15, 1),
 254         PIN_FIELD_BASE(96, 102, 6, 0x080, 0x10, 17, 1),
 255         PIN_FIELD_BASE(103, 106, 6, 0x080, 0x10, 28, 1),
 256         PIN_FIELD_BASE(107, 121, 7, 0x080, 0x10, 0, 1),
 257         PIN_FIELD_BASE(134, 143, 1, 0x080, 0x10, 0, 1),
 258         PIN_FIELD_BASE(144, 149, 1, 0x080, 0x10, 11, 1),
 259         PIN_FIELD_BASE(150, 160, 1, 0x080, 0x10, 18, 1),
 260         PIN_FIELD_BASE(161, 166, 2, 0x080, 0x10, 0, 1),
 261         PIN_FIELD_BASE(167, 176, 4, 0x080, 0x10, 11, 1),
 262         PIN_FIELD_BASE(177, 177, 6, 0x080, 0x10, 10, 1),
 263         PIN_FIELD_BASE(178, 178, 6, 0x080, 0x10, 16, 1),
 264         PIN_FIELD_BASE(179, 179, 6, 0x080, 0x10, 25, 1),
 265 };
 266 
 267 static const struct mtk_pin_field_calc mt8183_pin_drv_range[] = {
 268         PINS_FIELD_BASE(0, 3, 6, 0x0A0, 0x10, 12, 3),
 269         PINS_FIELD_BASE(4, 7, 6, 0x0A0, 0x10, 20, 3),
 270         PIN_FIELD_BASE(8, 8, 6, 0x0A0, 0x10, 0, 3),
 271         PINS_FIELD_BASE(9, 10, 6, 0x0B0, 0x10, 16, 3),
 272         PIN_FIELD_BASE(11, 11, 1, 0x0A0, 0x10, 12, 3),
 273         PIN_FIELD_BASE(12, 12, 1, 0x0A0, 0x10, 28, 3),
 274         PINS_FIELD_BASE(13, 16, 2, 0x0A0, 0x10, 8, 3),
 275         PINS_FIELD_BASE(17, 20, 2, 0x0A0, 0x10, 12, 3),
 276         PINS_FIELD_BASE(21, 24, 2, 0x0A0, 0x10, 16, 3),
 277         PINS_FIELD_BASE(25, 28, 2, 0x0A0, 0x10, 20, 3),
 278         PIN_FIELD_BASE(29, 29, 2, 0x0A0, 0x10, 24, 3),
 279         PIN_FIELD_BASE(30, 30, 2, 0x0A0, 0x10, 28, 3),
 280         PINS_FIELD_BASE(31, 31, 2, 0x0B0, 0x10, 0, 3),
 281         PINS_FIELD_BASE(32, 34, 2, 0x0A0, 0x10, 28, 3),
 282         PINS_FIELD_BASE(35, 37, 3, 0x0A0, 0x10, 0, 3),
 283         PINS_FIELD_BASE(38, 40, 3, 0x0A0, 0x10, 4, 3),
 284         PINS_FIELD_BASE(41, 42, 3, 0x0A0, 0x10, 8, 3),
 285         PINS_FIELD_BASE(43, 45, 3, 0x0A0, 0x10, 12, 3),
 286         PINS_FIELD_BASE(46, 47, 3, 0x0A0, 0x10, 16, 3),
 287         PINS_FIELD_BASE(48, 49, 3, 0x0A0, 0x10, 20, 3),
 288         PINS_FIELD_BASE(50, 51, 4, 0x0A0, 0x10, 0, 3),
 289         PINS_FIELD_BASE(52, 57, 4, 0x0A0, 0x10, 4, 3),
 290         PINS_FIELD_BASE(58, 60, 4, 0x0A0, 0x10, 8, 3),
 291         PINS_FIELD_BASE(61, 64, 5, 0x0A0, 0x10, 0, 3),
 292         PINS_FIELD_BASE(65, 66, 5, 0x0A0, 0x10, 4, 3),
 293         PINS_FIELD_BASE(67, 68, 5, 0x0A0, 0x10, 8, 3),
 294         PINS_FIELD_BASE(69, 71, 5, 0x0A0, 0x10, 12, 3),
 295         PINS_FIELD_BASE(72, 76, 5, 0x0A0, 0x10, 16, 3),
 296         PINS_FIELD_BASE(77, 80, 5, 0x0A0, 0x10, 20, 3),
 297         PIN_FIELD_BASE(81, 81, 5, 0x0A0, 0x10, 24, 3),
 298         PINS_FIELD_BASE(82, 83, 5, 0x0A0, 0x10, 28, 3),
 299         PIN_FIELD_BASE(84, 84, 5, 0x0A0, 0x10, 24, 3),
 300         PINS_FIELD_BASE(85, 88, 5, 0x0B0, 0x10, 0, 3),
 301         PIN_FIELD_BASE(89, 89, 6, 0x0B0, 0x10, 12, 3),
 302         PIN_FIELD_BASE(90, 90, 6, 0x0A0, 0x10, 4, 3),
 303         PINS_FIELD_BASE(91, 94, 6, 0x0A0, 0x10, 8, 3),
 304         PINS_FIELD_BASE(95, 96, 6, 0x0A0, 0x10, 24, 3),
 305         PINS_FIELD_BASE(97, 98, 6, 0x0A0, 0x10, 28, 3),
 306         PIN_FIELD_BASE(99, 99, 6, 0x0B0, 0x10, 0, 3),
 307         PIN_FIELD_BASE(100, 100, 6, 0x0B0, 0x10, 4, 3),
 308         PINS_FIELD_BASE(101, 102, 6, 0x0B0, 0x10, 8, 3),
 309         PINS_FIELD_BASE(103, 104, 6, 0x0B0, 0x10, 20, 3),
 310         PINS_FIELD_BASE(105, 106, 6, 0x0B0, 0x10, 24, 3),
 311         PIN_FIELD_BASE(107, 107, 7, 0x0A0, 0x10, 0, 3),
 312         PIN_FIELD_BASE(108, 108, 7, 0x0A0, 0x10, 4, 3),
 313         PIN_FIELD_BASE(109, 109, 7, 0x0A0, 0x10, 8, 3),
 314         PIN_FIELD_BASE(110, 110, 7, 0x0A0, 0x10, 0, 3),
 315         PIN_FIELD_BASE(111, 111, 7, 0x0A0, 0x10, 4, 3),
 316         PIN_FIELD_BASE(112, 112, 7, 0x0A0, 0x10, 8, 3),
 317         PIN_FIELD_BASE(113, 113, 7, 0x0A0, 0x10, 16, 3),
 318         PIN_FIELD_BASE(114, 114, 7, 0x0A0, 0x10, 20, 3),
 319         PIN_FIELD_BASE(115, 115, 7, 0x0A0, 0x10, 24, 3),
 320         PIN_FIELD_BASE(116, 116, 7, 0x0A0, 0x10, 28, 3),
 321         PIN_FIELD_BASE(117, 117, 7, 0x0B0, 0x10, 0, 3),
 322         PIN_FIELD_BASE(118, 118, 7, 0x0B0, 0x10, 4, 3),
 323         PIN_FIELD_BASE(119, 119, 7, 0x0B0, 0x10, 8, 3),
 324         PIN_FIELD_BASE(120, 120, 7, 0x0B0, 0x10, 12, 3),
 325         PIN_FIELD_BASE(121, 121, 7, 0x0B0, 0x10, 16, 3),
 326         PIN_FIELD_BASE(122, 122, 8, 0x0A0, 0x10, 0, 3),
 327         PIN_FIELD_BASE(123, 123, 8, 0x0A0, 0x10, 4, 3),
 328         PIN_FIELD_BASE(124, 124, 8, 0x0A0, 0x10, 8, 3),
 329         PINS_FIELD_BASE(125, 130, 8, 0x0A0, 0x10, 4, 3),
 330         PIN_FIELD_BASE(131, 131, 8, 0x0A0, 0x10, 12, 3),
 331         PIN_FIELD_BASE(132, 132, 8, 0x0A0, 0x10, 4, 3),
 332         PIN_FIELD_BASE(133, 133, 8, 0x0A0, 0x10, 16, 3),
 333         PIN_FIELD_BASE(134, 134, 1, 0x0A0, 0x10, 0, 3),
 334         PIN_FIELD_BASE(135, 135, 1, 0x0A0, 0x10, 4, 3),
 335         PINS_FIELD_BASE(136, 143, 1, 0x0A0, 0x10, 8, 3),
 336         PINS_FIELD_BASE(144, 147, 1, 0x0A0, 0x10, 16, 3),
 337         PIN_FIELD_BASE(148, 148, 1, 0x0A0, 0x10, 20, 3),
 338         PIN_FIELD_BASE(149, 149, 1, 0x0A0, 0x10, 24, 3),
 339         PINS_FIELD_BASE(150, 153, 1, 0x0B0, 0x10, 0, 3),
 340         PIN_FIELD_BASE(154, 154, 1, 0x0B0, 0x10, 4, 3),
 341         PINS_FIELD_BASE(155, 157, 1, 0x0B0, 0x10, 8, 3),
 342         PINS_FIELD_BASE(158, 160, 1, 0x0B0, 0x10, 0, 3),
 343         PINS_FIELD_BASE(161, 164, 2, 0x0A0, 0x10, 0, 3),
 344         PINS_FIELD_BASE(165, 166, 2, 0x0A0, 0x10, 4, 3),
 345         PINS_FIELD_BASE(167, 168, 4, 0x0A0, 0x10, 8, 3),
 346         PIN_FIELD_BASE(169, 169, 4, 0x0A0, 0x10, 12, 3),
 347         PINS_FIELD_BASE(170, 174, 4, 0x0A0, 0x10, 16, 3),
 348         PINS_FIELD_BASE(175, 176, 4, 0x0A0, 0x10, 12, 3),
 349         PINS_FIELD_BASE(177, 179, 6, 0x0A0, 0x10, 16, 3),
 350 };
 351 
 352 static const struct mtk_pin_field_calc mt8183_pin_pupd_range[] = {
 353         PIN_FIELD_BASE(29, 29, 2, 0x0C0, 0x10, 2, 1),
 354         PIN_FIELD_BASE(30, 30, 2, 0x0C0, 0x10, 6, 1),
 355         PIN_FIELD_BASE(31, 31, 2, 0x0C0, 0x10, 10, 1),
 356         PIN_FIELD_BASE(32, 32, 2, 0x0C0, 0x10, 14, 1),
 357         PIN_FIELD_BASE(33, 33, 2, 0x0C0, 0x10, 18, 1),
 358         PIN_FIELD_BASE(34, 34, 2, 0x0C0, 0x10, 22, 1),
 359         PIN_FIELD_BASE(35, 35, 3, 0x0C0, 0x10, 2, 1),
 360         PIN_FIELD_BASE(36, 36, 3, 0x0C0, 0x10, 6, 1),
 361         PIN_FIELD_BASE(37, 37, 3, 0x0C0, 0x10, 10, 1),
 362         PIN_FIELD_BASE(38, 38, 3, 0x0C0, 0x10, 14, 1),
 363         PIN_FIELD_BASE(39, 39, 3, 0x0C0, 0x10, 18, 1),
 364         PIN_FIELD_BASE(40, 40, 3, 0x0C0, 0x10, 22, 1),
 365         PIN_FIELD_BASE(41, 41, 3, 0x0C0, 0x10, 26, 1),
 366         PIN_FIELD_BASE(42, 42, 3, 0x0C0, 0x10, 30, 1),
 367         PIN_FIELD_BASE(91, 91, 6, 0x0C0, 0x10, 2, 1),
 368         PIN_FIELD_BASE(92, 92, 6, 0x0C0, 0x10, 6, 1),
 369         PIN_FIELD_BASE(93, 93, 6, 0x0C0, 0x10, 10, 1),
 370         PIN_FIELD_BASE(94, 94, 6, 0x0C0, 0x10, 14, 1),
 371         PIN_FIELD_BASE(122, 122, 8, 0x0C0, 0x10, 2, 1),
 372         PIN_FIELD_BASE(123, 123, 8, 0x0C0, 0x10, 6, 1),
 373         PIN_FIELD_BASE(124, 124, 8, 0x0C0, 0x10, 10, 1),
 374         PIN_FIELD_BASE(125, 125, 8, 0x0C0, 0x10, 14, 1),
 375         PIN_FIELD_BASE(126, 126, 8, 0x0C0, 0x10, 18, 1),
 376         PIN_FIELD_BASE(127, 127, 8, 0x0C0, 0x10, 22, 1),
 377         PIN_FIELD_BASE(128, 128, 8, 0x0C0, 0x10, 26, 1),
 378         PIN_FIELD_BASE(129, 129, 8, 0x0C0, 0x10, 30, 1),
 379         PIN_FIELD_BASE(130, 130, 8, 0x0D0, 0x10, 2, 1),
 380         PIN_FIELD_BASE(131, 131, 8, 0x0D0, 0x10, 6, 1),
 381         PIN_FIELD_BASE(132, 132, 8, 0x0D0, 0x10, 10, 1),
 382         PIN_FIELD_BASE(133, 133, 8, 0x0D0, 0x10, 14, 1),
 383 };
 384 
 385 static const struct mtk_pin_field_calc mt8183_pin_r0_range[] = {
 386         PIN_FIELD_BASE(29, 29, 2, 0x0C0, 0x10, 0, 1),
 387         PIN_FIELD_BASE(30, 30, 2, 0x0C0, 0x10, 4, 1),
 388         PIN_FIELD_BASE(31, 31, 2, 0x0C0, 0x10, 8, 1),
 389         PIN_FIELD_BASE(32, 32, 2, 0x0C0, 0x10, 12, 1),
 390         PIN_FIELD_BASE(33, 33, 2, 0x0C0, 0x10, 16, 1),
 391         PIN_FIELD_BASE(34, 34, 2, 0x0C0, 0x10, 20, 1),
 392         PIN_FIELD_BASE(35, 35, 3, 0x0C0, 0x10, 0, 1),
 393         PIN_FIELD_BASE(36, 36, 3, 0x0C0, 0x10, 4, 1),
 394         PIN_FIELD_BASE(37, 37, 3, 0x0C0, 0x10, 8, 1),
 395         PIN_FIELD_BASE(38, 38, 3, 0x0C0, 0x10, 12, 1),
 396         PIN_FIELD_BASE(39, 39, 3, 0x0C0, 0x10, 16, 1),
 397         PIN_FIELD_BASE(40, 40, 3, 0x0C0, 0x10, 20, 1),
 398         PIN_FIELD_BASE(41, 41, 3, 0x0C0, 0x10, 24, 1),
 399         PIN_FIELD_BASE(42, 42, 3, 0x0C0, 0x10, 28, 1),
 400         PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 18, 1),
 401         PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 13, 1),
 402         PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 10, 1),
 403         PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 5, 1),
 404         PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 7, 1),
 405         PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 5, 1),
 406         PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 15, 1),
 407         PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 17, 1),
 408         PIN_FIELD_BASE(91, 91, 6, 0x0C0, 0x10, 0, 1),
 409         PIN_FIELD_BASE(92, 92, 6, 0x0C0, 0x10, 4, 1),
 410         PIN_FIELD_BASE(93, 93, 6, 0x0C0, 0x10, 8, 1),
 411         PIN_FIELD_BASE(94, 94, 6, 0x0C0, 0x10, 12, 1),
 412         PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 20, 1),
 413         PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 10, 1),
 414         PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 22, 1),
 415         PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 12, 1),
 416         PIN_FIELD_BASE(122, 122, 8, 0x0C0, 0x10, 0, 1),
 417         PIN_FIELD_BASE(123, 123, 8, 0x0C0, 0x10, 4, 1),
 418         PIN_FIELD_BASE(124, 124, 8, 0x0C0, 0x10, 8, 1),
 419         PIN_FIELD_BASE(125, 125, 8, 0x0C0, 0x10, 12, 1),
 420         PIN_FIELD_BASE(126, 126, 8, 0x0C0, 0x10, 16, 1),
 421         PIN_FIELD_BASE(127, 127, 8, 0x0C0, 0x10, 20, 1),
 422         PIN_FIELD_BASE(128, 128, 8, 0x0C0, 0x10, 24, 1),
 423         PIN_FIELD_BASE(129, 129, 8, 0x0C0, 0x10, 28, 1),
 424         PIN_FIELD_BASE(130, 130, 8, 0x0D0, 0x10, 0, 1),
 425         PIN_FIELD_BASE(131, 131, 8, 0x0D0, 0x10, 4, 1),
 426         PIN_FIELD_BASE(132, 132, 8, 0x0D0, 0x10, 8, 1),
 427         PIN_FIELD_BASE(133, 133, 8, 0x0D0, 0x10, 12, 1),
 428 };
 429 
 430 static const struct mtk_pin_field_calc mt8183_pin_r1_range[] = {
 431         PIN_FIELD_BASE(29, 29, 2, 0x0C0, 0x10, 1, 1),
 432         PIN_FIELD_BASE(30, 30, 2, 0x0C0, 0x10, 5, 1),
 433         PIN_FIELD_BASE(31, 31, 2, 0x0C0, 0x10, 9, 1),
 434         PIN_FIELD_BASE(32, 32, 2, 0x0C0, 0x10, 13, 1),
 435         PIN_FIELD_BASE(33, 33, 2, 0x0C0, 0x10, 17, 1),
 436         PIN_FIELD_BASE(34, 34, 2, 0x0C0, 0x10, 21, 1),
 437         PIN_FIELD_BASE(35, 35, 3, 0x0C0, 0x10, 1, 1),
 438         PIN_FIELD_BASE(36, 36, 3, 0x0C0, 0x10, 5, 1),
 439         PIN_FIELD_BASE(37, 37, 3, 0x0C0, 0x10, 9, 1),
 440         PIN_FIELD_BASE(38, 38, 3, 0x0C0, 0x10, 13, 1),
 441         PIN_FIELD_BASE(39, 39, 3, 0x0C0, 0x10, 17, 1),
 442         PIN_FIELD_BASE(40, 40, 3, 0x0C0, 0x10, 21, 1),
 443         PIN_FIELD_BASE(41, 41, 3, 0x0C0, 0x10, 25, 1),
 444         PIN_FIELD_BASE(42, 42, 3, 0x0C0, 0x10, 29, 1),
 445         PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 19, 1),
 446         PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 14, 1),
 447         PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 11, 1),
 448         PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 6, 1),
 449         PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 8, 1),
 450         PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 6, 1),
 451         PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 16, 1),
 452         PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 18, 1),
 453         PIN_FIELD_BASE(91, 91, 6, 0x0C0, 0x10, 1, 1),
 454         PIN_FIELD_BASE(92, 92, 6, 0x0C0, 0x10, 5, 1),
 455         PIN_FIELD_BASE(93, 93, 6, 0x0C0, 0x10, 9, 1),
 456         PIN_FIELD_BASE(94, 94, 6, 0x0C0, 0x10, 13, 1),
 457         PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 21, 1),
 458         PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 11, 1),
 459         PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 23, 1),
 460         PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 13, 1),
 461         PIN_FIELD_BASE(122, 122, 8, 0x0C0, 0x10, 1, 1),
 462         PIN_FIELD_BASE(123, 123, 8, 0x0C0, 0x10, 5, 1),
 463         PIN_FIELD_BASE(124, 124, 8, 0x0C0, 0x10, 9, 1),
 464         PIN_FIELD_BASE(125, 125, 8, 0x0C0, 0x10, 13, 1),
 465         PIN_FIELD_BASE(126, 126, 8, 0x0C0, 0x10, 17, 1),
 466         PIN_FIELD_BASE(127, 127, 8, 0x0C0, 0x10, 21, 1),
 467         PIN_FIELD_BASE(128, 128, 8, 0x0C0, 0x10, 25, 1),
 468         PIN_FIELD_BASE(129, 129, 8, 0x0C0, 0x10, 29, 1),
 469         PIN_FIELD_BASE(130, 130, 8, 0x0D0, 0x10, 1, 1),
 470         PIN_FIELD_BASE(131, 131, 8, 0x0D0, 0x10, 5, 1),
 471         PIN_FIELD_BASE(132, 132, 8, 0x0D0, 0x10, 9, 1),
 472         PIN_FIELD_BASE(133, 133, 8, 0x0D0, 0x10, 13, 1),
 473 };
 474 
 475 static const struct mtk_pin_field_calc mt8183_pin_e1e0en_range[] = {
 476         PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 20, 1),
 477         PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 15, 1),
 478         PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 12, 1),
 479         PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 7, 1),
 480         PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 12, 1),
 481         PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 9, 1),
 482         PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 19, 1),
 483         PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 22, 1),
 484         PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 24, 1),
 485         PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 14, 1),
 486         PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 27, 1),
 487         PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 17, 1),
 488 };
 489 
 490 static const struct mtk_pin_field_calc mt8183_pin_e0_range[] = {
 491         PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 21, 1),
 492         PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 16, 1),
 493         PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 13, 1),
 494         PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 8, 1),
 495         PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 13, 1),
 496         PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 10, 1),
 497         PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 20, 1),
 498         PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 23, 1),
 499         PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 25, 1),
 500         PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 15, 1),
 501         PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 28, 1),
 502         PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 18, 1),
 503 };
 504 
 505 static const struct mtk_pin_field_calc mt8183_pin_e1_range[] = {
 506         PIN_FIELD_BASE(48, 48, 3, 0x0F0, 0x10, 22, 1),
 507         PIN_FIELD_BASE(49, 49, 3, 0x0F0, 0x10, 17, 1),
 508         PIN_FIELD_BASE(50, 50, 4, 0x0F0, 0x10, 14, 1),
 509         PIN_FIELD_BASE(51, 51, 4, 0x0F0, 0x10, 9, 1),
 510         PIN_FIELD_BASE(81, 81, 5, 0x0F0, 0x10, 14, 1),
 511         PIN_FIELD_BASE(82, 82, 5, 0x0F0, 0x10, 11, 1),
 512         PIN_FIELD_BASE(83, 83, 5, 0x0F0, 0x10, 21, 1),
 513         PIN_FIELD_BASE(84, 84, 5, 0x0F0, 0x10, 24, 1),
 514         PIN_FIELD_BASE(103, 103, 6, 0x0F0, 0x10, 26, 1),
 515         PIN_FIELD_BASE(104, 104, 6, 0x0F0, 0x10, 16, 1),
 516         PIN_FIELD_BASE(105, 105, 6, 0x0F0, 0x10, 29, 1),
 517         PIN_FIELD_BASE(106, 106, 6, 0x0F0, 0x10, 19, 1),
 518 };
 519 
 520 static const struct mtk_pin_reg_calc mt8183_reg_cals[PINCTRL_PIN_REG_MAX] = {
 521         [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt8183_pin_mode_range),
 522         [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt8183_pin_dir_range),
 523         [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt8183_pin_di_range),
 524         [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt8183_pin_do_range),
 525         [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt8183_pin_smt_range),
 526         [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt8183_pin_ies_range),
 527         [PINCTRL_PIN_REG_PULLEN] = MTK_RANGE(mt8183_pin_pullen_range),
 528         [PINCTRL_PIN_REG_PULLSEL] = MTK_RANGE(mt8183_pin_pullsel_range),
 529         [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt8183_pin_drv_range),
 530         [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt8183_pin_pupd_range),
 531         [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt8183_pin_r0_range),
 532         [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt8183_pin_r1_range),
 533         [PINCTRL_PIN_REG_DRV_EN] = MTK_RANGE(mt8183_pin_e1e0en_range),
 534         [PINCTRL_PIN_REG_DRV_E0] = MTK_RANGE(mt8183_pin_e0_range),
 535         [PINCTRL_PIN_REG_DRV_E1] = MTK_RANGE(mt8183_pin_e1_range),
 536 };
 537 
 538 static const char * const mt8183_pinctrl_register_base_names[] = {
 539         "iocfg0", "iocfg1", "iocfg2", "iocfg3", "iocfg4", "iocfg5",
 540         "iocfg6", "iocfg7", "iocfg8",
 541 };
 542 
 543 static const struct mtk_eint_hw mt8183_eint_hw = {
 544         .port_mask = 7,
 545         .ports     = 6,
 546         .ap_num    = 212,
 547         .db_cnt    = 13,
 548 };
 549 
 550 static const struct mtk_pin_soc mt8183_data = {
 551         .reg_cal = mt8183_reg_cals,
 552         .pins = mtk_pins_mt8183,
 553         .npins = ARRAY_SIZE(mtk_pins_mt8183),
 554         .ngrps = ARRAY_SIZE(mtk_pins_mt8183),
 555         .eint_hw = &mt8183_eint_hw,
 556         .gpio_m = 0,
 557         .ies_present = true,
 558         .base_names = mt8183_pinctrl_register_base_names,
 559         .nbase_names = ARRAY_SIZE(mt8183_pinctrl_register_base_names),
 560         .bias_disable_set = mtk_pinconf_bias_disable_set_rev1,
 561         .bias_disable_get = mtk_pinconf_bias_disable_get_rev1,
 562         .bias_set = mtk_pinconf_bias_set_rev1,
 563         .bias_get = mtk_pinconf_bias_get_rev1,
 564         .drive_set = mtk_pinconf_drive_set_rev1,
 565         .drive_get = mtk_pinconf_drive_get_rev1,
 566         .adv_pull_get = mtk_pinconf_adv_pull_get,
 567         .adv_pull_set = mtk_pinconf_adv_pull_set,
 568         .adv_drive_get = mtk_pinconf_adv_drive_get,
 569         .adv_drive_set = mtk_pinconf_adv_drive_set,
 570 };
 571 
 572 static const struct of_device_id mt8183_pinctrl_of_match[] = {
 573         { .compatible = "mediatek,mt8183-pinctrl", },
 574         { }
 575 };
 576 
 577 static int mt8183_pinctrl_probe(struct platform_device *pdev)
 578 {
 579         return mtk_paris_pinctrl_probe(pdev, &mt8183_data);
 580 }
 581 
 582 static struct platform_driver mt8183_pinctrl_driver = {
 583         .driver = {
 584                 .name = "mt8183-pinctrl",
 585                 .of_match_table = mt8183_pinctrl_of_match,
 586                 .pm = &mtk_paris_pinctrl_pm_ops,
 587         },
 588         .probe = mt8183_pinctrl_probe,
 589 };
 590 
 591 static int __init mt8183_pinctrl_init(void)
 592 {
 593         return platform_driver_register(&mt8183_pinctrl_driver);
 594 }
 595 arch_initcall(mt8183_pinctrl_init);

/* [<][>][^][v][top][bottom][index][help] */