^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright (C) 2019 MediaTek Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Author: Andy Teng <andy.teng@mediatek.com>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #include <linux/module.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) #include "pinctrl-mtk-mt6779.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include "pinctrl-paris.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) /* MT6779 have multiple bases to program pin configuration listed as the below:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) * gpio:0x10005000, iocfg_rm:0x11C20000, iocfg_br:0x11D10000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) * iocfg_lm:0x11E20000, iocfg_lb:0x11E70000, iocfg_rt:0x11EA0000,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * iocfg_lt:0x11F20000, iocfg_tl:0x11F30000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) * _i_based could be used to indicate what base the pin should be mapped into.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define PIN_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) 32, 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define PINS_FIELD_BASE(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) PIN_FIELD_CALC(s_pin, e_pin, i_base, s_addr, x_addrs, s_bit, x_bits, \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) 32, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) static const struct mtk_pin_field_calc mt6779_pin_mode_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) PIN_FIELD_BASE(0, 7, 0, 0x0300, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) PIN_FIELD_BASE(8, 15, 0, 0x0310, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) PIN_FIELD_BASE(16, 23, 0, 0x0320, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) PIN_FIELD_BASE(24, 31, 0, 0x0330, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) PIN_FIELD_BASE(32, 39, 0, 0x0340, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) PIN_FIELD_BASE(40, 47, 0, 0x0350, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) PIN_FIELD_BASE(48, 55, 0, 0x0360, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) PIN_FIELD_BASE(56, 63, 0, 0x0370, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) PIN_FIELD_BASE(64, 71, 0, 0x0380, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) PIN_FIELD_BASE(72, 79, 0, 0x0390, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) PIN_FIELD_BASE(80, 87, 0, 0x03A0, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) PIN_FIELD_BASE(88, 95, 0, 0x03B0, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) PIN_FIELD_BASE(96, 103, 0, 0x03C0, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) PIN_FIELD_BASE(104, 111, 0, 0x03D0, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) PIN_FIELD_BASE(112, 119, 0, 0x03E0, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) PIN_FIELD_BASE(120, 127, 0, 0x03F0, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) PIN_FIELD_BASE(128, 135, 0, 0x0400, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) PIN_FIELD_BASE(136, 143, 0, 0x0410, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) PIN_FIELD_BASE(144, 151, 0, 0x0420, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) PIN_FIELD_BASE(152, 159, 0, 0x0430, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) PIN_FIELD_BASE(160, 167, 0, 0x0440, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) PIN_FIELD_BASE(168, 175, 0, 0x0450, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) PIN_FIELD_BASE(176, 183, 0, 0x0460, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) PIN_FIELD_BASE(184, 191, 0, 0x0470, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) PIN_FIELD_BASE(192, 199, 0, 0x0480, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) PIN_FIELD_BASE(200, 202, 0, 0x0490, 0x10, 0, 4),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) static const struct mtk_pin_field_calc mt6779_pin_dir_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) PIN_FIELD_BASE(0, 31, 0, 0x0000, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) PIN_FIELD_BASE(32, 63, 0, 0x0010, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) PIN_FIELD_BASE(64, 95, 0, 0x0020, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) PIN_FIELD_BASE(96, 127, 0, 0x0030, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) PIN_FIELD_BASE(128, 159, 0, 0x0040, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) PIN_FIELD_BASE(160, 191, 0, 0x0050, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) PIN_FIELD_BASE(192, 202, 0, 0x0060, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) static const struct mtk_pin_field_calc mt6779_pin_di_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) PIN_FIELD_BASE(0, 31, 0, 0x0200, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) PIN_FIELD_BASE(32, 63, 0, 0x0210, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) PIN_FIELD_BASE(64, 95, 0, 0x0220, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) PIN_FIELD_BASE(96, 127, 0, 0x0230, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) PIN_FIELD_BASE(128, 159, 0, 0x0240, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) PIN_FIELD_BASE(160, 191, 0, 0x0250, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) PIN_FIELD_BASE(192, 202, 0, 0x0260, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) static const struct mtk_pin_field_calc mt6779_pin_do_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) PIN_FIELD_BASE(0, 31, 0, 0x0100, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) PIN_FIELD_BASE(32, 63, 0, 0x0110, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) PIN_FIELD_BASE(64, 95, 0, 0x0120, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) PIN_FIELD_BASE(96, 127, 0, 0x0130, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) PIN_FIELD_BASE(128, 159, 0, 0x0140, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) PIN_FIELD_BASE(160, 191, 0, 0x0150, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) PIN_FIELD_BASE(192, 202, 0, 0x0160, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) static const struct mtk_pin_field_calc mt6779_pin_ies_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) PIN_FIELD_BASE(0, 9, 6, 0x0030, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) PIN_FIELD_BASE(10, 16, 3, 0x0050, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) PIN_FIELD_BASE(17, 18, 6, 0x0030, 0x10, 28, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) PIN_FIELD_BASE(19, 19, 6, 0x0030, 0x10, 27, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) PIN_FIELD_BASE(20, 20, 6, 0x0030, 0x10, 26, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) PIN_FIELD_BASE(21, 24, 6, 0x0030, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) PIN_FIELD_BASE(25, 25, 6, 0x0030, 0x10, 30, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) PIN_FIELD_BASE(26, 26, 6, 0x0030, 0x10, 23, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) PIN_FIELD_BASE(27, 27, 6, 0x0030, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) PIN_FIELD_BASE(28, 29, 6, 0x0030, 0x10, 24, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) PIN_FIELD_BASE(30, 30, 6, 0x0030, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) PIN_FIELD_BASE(31, 31, 6, 0x0030, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) PIN_FIELD_BASE(32, 32, 6, 0x0030, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) PIN_FIELD_BASE(33, 33, 6, 0x0030, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) PIN_FIELD_BASE(34, 34, 6, 0x0030, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) PIN_FIELD_BASE(35, 35, 6, 0x0040, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) PIN_FIELD_BASE(36, 36, 6, 0x0030, 0x10, 31, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) PIN_FIELD_BASE(37, 37, 6, 0x0040, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) PIN_FIELD_BASE(38, 41, 6, 0x0040, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) PIN_FIELD_BASE(42, 43, 6, 0x0030, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) PIN_FIELD_BASE(44, 44, 6, 0x0030, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) PIN_FIELD_BASE(45, 45, 3, 0x0050, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) PIN_FIELD_BASE(46, 46, 3, 0x0050, 0x10, 22, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) PIN_FIELD_BASE(47, 47, 3, 0x0050, 0x10, 25, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) PIN_FIELD_BASE(48, 48, 3, 0x0050, 0x10, 24, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) PIN_FIELD_BASE(49, 49, 3, 0x0050, 0x10, 26, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) PIN_FIELD_BASE(50, 50, 3, 0x0050, 0x10, 23, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) PIN_FIELD_BASE(51, 51, 3, 0x0050, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) PIN_FIELD_BASE(52, 52, 3, 0x0050, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) PIN_FIELD_BASE(53, 54, 3, 0x0050, 0x10, 27, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) PIN_FIELD_BASE(55, 55, 3, 0x0050, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) PIN_FIELD_BASE(56, 56, 3, 0x0050, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) PIN_FIELD_BASE(57, 57, 3, 0x0050, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) PIN_FIELD_BASE(58, 58, 3, 0x0050, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) PIN_FIELD_BASE(59, 60, 3, 0x0050, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) PIN_FIELD_BASE(61, 61, 3, 0x0050, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) PIN_FIELD_BASE(62, 62, 3, 0x0050, 0x10, 20, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) PIN_FIELD_BASE(63, 63, 3, 0x0050, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) PIN_FIELD_BASE(64, 64, 3, 0x0050, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) PIN_FIELD_BASE(65, 65, 3, 0x0050, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) PIN_FIELD_BASE(66, 66, 3, 0x0050, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) PIN_FIELD_BASE(67, 67, 2, 0x0060, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) PIN_FIELD_BASE(68, 68, 2, 0x0060, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) PIN_FIELD_BASE(69, 69, 2, 0x0060, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) PIN_FIELD_BASE(70, 71, 2, 0x0060, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) PIN_FIELD_BASE(72, 72, 4, 0x0020, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) PIN_FIELD_BASE(73, 73, 4, 0x0020, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) PIN_FIELD_BASE(74, 74, 4, 0x0020, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) PIN_FIELD_BASE(75, 75, 4, 0x0020, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) PIN_FIELD_BASE(76, 76, 4, 0x0020, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) PIN_FIELD_BASE(77, 77, 4, 0x0020, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) PIN_FIELD_BASE(78, 78, 2, 0x0050, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) PIN_FIELD_BASE(79, 79, 2, 0x0050, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) PIN_FIELD_BASE(80, 81, 2, 0x0050, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) PIN_FIELD_BASE(82, 88, 2, 0x0050, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) PIN_FIELD_BASE(89, 89, 2, 0x0050, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) PIN_FIELD_BASE(90, 90, 2, 0x0050, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) PIN_FIELD_BASE(91, 91, 2, 0x0050, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) PIN_FIELD_BASE(92, 92, 2, 0x0050, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) PIN_FIELD_BASE(93, 93, 4, 0x0020, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) PIN_FIELD_BASE(94, 94, 2, 0x0050, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) PIN_FIELD_BASE(95, 95, 4, 0x0020, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149) PIN_FIELD_BASE(96, 96, 4, 0x0020, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) PIN_FIELD_BASE(97, 97, 4, 0x0020, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) PIN_FIELD_BASE(98, 98, 4, 0x0020, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) PIN_FIELD_BASE(99, 99, 2, 0x0060, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) PIN_FIELD_BASE(100, 100, 2, 0x0060, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) PIN_FIELD_BASE(101, 101, 2, 0x0060, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) PIN_FIELD_BASE(102, 102, 2, 0x0060, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) PIN_FIELD_BASE(103, 103, 2, 0x0060, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) PIN_FIELD_BASE(104, 104, 2, 0x0060, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) PIN_FIELD_BASE(105, 105, 2, 0x0050, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) PIN_FIELD_BASE(106, 106, 2, 0x0050, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) PIN_FIELD_BASE(107, 108, 2, 0x0050, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) PIN_FIELD_BASE(109, 109, 2, 0x0050, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) PIN_FIELD_BASE(110, 110, 2, 0x0060, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) PIN_FIELD_BASE(111, 111, 2, 0x0060, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) PIN_FIELD_BASE(112, 112, 2, 0x0060, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) PIN_FIELD_BASE(113, 113, 2, 0x0060, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) PIN_FIELD_BASE(114, 115, 2, 0x0050, 0x10, 26, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167) PIN_FIELD_BASE(116, 117, 2, 0x0050, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) PIN_FIELD_BASE(118, 118, 2, 0x0050, 0x10, 31, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) PIN_FIELD_BASE(119, 119, 2, 0x0060, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) PIN_FIELD_BASE(120, 121, 2, 0x0050, 0x10, 23, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) PIN_FIELD_BASE(122, 123, 2, 0x0050, 0x10, 28, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) PIN_FIELD_BASE(124, 125, 2, 0x0060, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) PIN_FIELD_BASE(126, 127, 1, 0x0030, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) PIN_FIELD_BASE(128, 129, 1, 0x0030, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) PIN_FIELD_BASE(130, 130, 1, 0x0030, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) PIN_FIELD_BASE(131, 131, 1, 0x0030, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) PIN_FIELD_BASE(132, 132, 1, 0x0030, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) PIN_FIELD_BASE(133, 133, 1, 0x0030, 0x10, 20, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) PIN_FIELD_BASE(134, 135, 1, 0x0030, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) PIN_FIELD_BASE(136, 136, 1, 0x0030, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) PIN_FIELD_BASE(137, 137, 1, 0x0030, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) PIN_FIELD_BASE(138, 138, 1, 0x0030, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) PIN_FIELD_BASE(139, 139, 1, 0x0030, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) PIN_FIELD_BASE(140, 141, 1, 0x0030, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) PIN_FIELD_BASE(142, 142, 1, 0x0030, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) PIN_FIELD_BASE(143, 143, 5, 0x0020, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) PIN_FIELD_BASE(144, 144, 5, 0x0020, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) PIN_FIELD_BASE(145, 145, 5, 0x0020, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) PIN_FIELD_BASE(146, 146, 5, 0x0020, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) PIN_FIELD_BASE(147, 155, 5, 0x0020, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) PIN_FIELD_BASE(156, 157, 5, 0x0020, 0x10, 22, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) PIN_FIELD_BASE(158, 158, 5, 0x0020, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) PIN_FIELD_BASE(159, 159, 5, 0x0020, 0x10, 24, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) PIN_FIELD_BASE(160, 161, 5, 0x0020, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) PIN_FIELD_BASE(162, 166, 5, 0x0020, 0x10, 25, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) PIN_FIELD_BASE(167, 168, 7, 0x0010, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) PIN_FIELD_BASE(169, 169, 7, 0x0010, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) PIN_FIELD_BASE(170, 170, 7, 0x0010, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) PIN_FIELD_BASE(171, 171, 7, 0x0010, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) PIN_FIELD_BASE(172, 172, 7, 0x0010, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) PIN_FIELD_BASE(173, 173, 7, 0x0010, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) PIN_FIELD_BASE(174, 175, 7, 0x0010, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) PIN_FIELD_BASE(176, 176, 7, 0x0010, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) PIN_FIELD_BASE(177, 177, 7, 0x0010, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) PIN_FIELD_BASE(178, 178, 7, 0x0010, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) PIN_FIELD_BASE(179, 179, 4, 0x0020, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) PIN_FIELD_BASE(180, 180, 4, 0x0020, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) PIN_FIELD_BASE(181, 183, 1, 0x0030, 0x10, 22, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) PIN_FIELD_BASE(184, 184, 1, 0x0030, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) PIN_FIELD_BASE(185, 185, 1, 0x0030, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) PIN_FIELD_BASE(186, 186, 1, 0x0030, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) PIN_FIELD_BASE(187, 187, 1, 0x0030, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) PIN_FIELD_BASE(188, 188, 1, 0x0030, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) PIN_FIELD_BASE(189, 189, 5, 0x0020, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) PIN_FIELD_BASE(190, 190, 5, 0x0020, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) PIN_FIELD_BASE(191, 192, 5, 0x0020, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217) PIN_FIELD_BASE(193, 194, 5, 0x0020, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) PIN_FIELD_BASE(195, 195, 2, 0x0050, 0x10, 30, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) PIN_FIELD_BASE(196, 196, 2, 0x0050, 0x10, 25, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) PIN_FIELD_BASE(197, 197, 2, 0x0060, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) PIN_FIELD_BASE(198, 199, 4, 0x0020, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) PIN_FIELD_BASE(200, 201, 6, 0x0040, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) PIN_FIELD_BASE(202, 202, 4, 0x0020, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) static const struct mtk_pin_field_calc mt6779_pin_smt_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) PINS_FIELD_BASE(0, 9, 6, 0x00c0, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228) PIN_FIELD_BASE(10, 11, 3, 0x00e0, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) PINS_FIELD_BASE(12, 15, 3, 0x00e0, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) PIN_FIELD_BASE(16, 16, 3, 0x00e0, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) PINS_FIELD_BASE(17, 20, 6, 0x00c0, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) PINS_FIELD_BASE(21, 24, 6, 0x00c0, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) PIN_FIELD_BASE(25, 25, 6, 0x00c0, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) PIN_FIELD_BASE(26, 26, 6, 0x00c0, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) PIN_FIELD_BASE(27, 27, 6, 0x00c0, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) PIN_FIELD_BASE(28, 29, 6, 0x00c0, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) PINS_FIELD_BASE(30, 32, 6, 0x00c0, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) PIN_FIELD_BASE(33, 33, 6, 0x00c0, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239) PIN_FIELD_BASE(34, 34, 6, 0x00c0, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) PINS_FIELD_BASE(35, 41, 6, 0x00c0, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) PIN_FIELD_BASE(42, 43, 6, 0x00c0, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) PIN_FIELD_BASE(44, 44, 6, 0x00c0, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243) PIN_FIELD_BASE(45, 45, 3, 0x00e0, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) PIN_FIELD_BASE(46, 46, 3, 0x00e0, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) PINS_FIELD_BASE(47, 50, 3, 0x00e0, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) PIN_FIELD_BASE(51, 51, 3, 0x00e0, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247) PIN_FIELD_BASE(52, 52, 3, 0x00e0, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) PIN_FIELD_BASE(53, 54, 3, 0x00e0, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) PIN_FIELD_BASE(55, 55, 3, 0x00e0, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) PIN_FIELD_BASE(56, 56, 3, 0x00e0, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251) PINS_FIELD_BASE(57, 60, 3, 0x00e0, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) PIN_FIELD_BASE(61, 61, 3, 0x00e0, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) PIN_FIELD_BASE(62, 62, 3, 0x00e0, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) PINS_FIELD_BASE(63, 66, 3, 0x00e0, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255) PINS_FIELD_BASE(67, 69, 2, 0x00e0, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) PIN_FIELD_BASE(70, 71, 2, 0x00e0, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) PINS_FIELD_BASE(72, 75, 4, 0x0070, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) PINS_FIELD_BASE(76, 77, 4, 0x0070, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) PINS_FIELD_BASE(78, 86, 2, 0x00e0, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260) PINS_FIELD_BASE(87, 92, 2, 0x00e0, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) PIN_FIELD_BASE(93, 93, 4, 0x0070, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) PIN_FIELD_BASE(94, 94, 2, 0x00e0, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) PINS_FIELD_BASE(95, 98, 4, 0x0070, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) PINS_FIELD_BASE(99, 104, 2, 0x00e0, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265) PINS_FIELD_BASE(105, 109, 2, 0x00e0, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) PIN_FIELD_BASE(110, 110, 2, 0x00e0, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) PIN_FIELD_BASE(111, 111, 2, 0x00e0, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) PIN_FIELD_BASE(112, 112, 2, 0x00e0, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) PIN_FIELD_BASE(113, 113, 2, 0x00e0, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) PINS_FIELD_BASE(114, 115, 2, 0x00e0, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) PIN_FIELD_BASE(116, 117, 2, 0x00e0, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272) PINS_FIELD_BASE(118, 119, 2, 0x00e0, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) PIN_FIELD_BASE(120, 121, 2, 0x00e0, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) PINS_FIELD_BASE(122, 125, 2, 0x00e0, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) PINS_FIELD_BASE(126, 127, 1, 0x00c0, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) PINS_FIELD_BASE(128, 130, 1, 0x00c0, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) PINS_FIELD_BASE(131, 133, 1, 0x00c0, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) PIN_FIELD_BASE(134, 135, 1, 0x00c0, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279) PINS_FIELD_BASE(136, 139, 1, 0x00c0, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) PIN_FIELD_BASE(140, 141, 1, 0x00c0, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) PIN_FIELD_BASE(142, 142, 1, 0x00c0, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) PINS_FIELD_BASE(143, 146, 5, 0x0060, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283) PINS_FIELD_BASE(147, 155, 5, 0x0060, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) PIN_FIELD_BASE(156, 157, 5, 0x0060, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) PIN_FIELD_BASE(158, 158, 5, 0x0060, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) PIN_FIELD_BASE(159, 159, 5, 0x0060, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287) PIN_FIELD_BASE(160, 161, 5, 0x0060, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) PINS_FIELD_BASE(162, 166, 5, 0x0060, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) PIN_FIELD_BASE(167, 167, 7, 0x0060, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290) PINS_FIELD_BASE(168, 174, 7, 0x0060, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) PIN_FIELD_BASE(175, 175, 7, 0x0060, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) PIN_FIELD_BASE(176, 176, 7, 0x0060, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) PINS_FIELD_BASE(177, 178, 7, 0x0060, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) PINS_FIELD_BASE(179, 180, 4, 0x0070, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) PIN_FIELD_BASE(181, 183, 1, 0x00c0, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296) PINS_FIELD_BASE(184, 187, 1, 0x00c0, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) PIN_FIELD_BASE(188, 188, 1, 0x00c0, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) PINS_FIELD_BASE(189, 194, 5, 0x0060, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) PIN_FIELD_BASE(195, 195, 2, 0x00e0, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) PIN_FIELD_BASE(196, 196, 2, 0x00e0, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) PIN_FIELD_BASE(197, 197, 2, 0x00e0, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302) PIN_FIELD_BASE(198, 199, 4, 0x0070, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) PIN_FIELD_BASE(200, 201, 6, 0x00c0, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) PIN_FIELD_BASE(202, 202, 4, 0x0070, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) static const struct mtk_pin_field_calc mt6779_pin_pu_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308) PIN_FIELD_BASE(0, 9, 6, 0x0070, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) PIN_FIELD_BASE(16, 16, 3, 0x0080, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) PIN_FIELD_BASE(17, 18, 6, 0x0070, 0x10, 28, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) PIN_FIELD_BASE(19, 19, 6, 0x0070, 0x10, 27, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312) PIN_FIELD_BASE(20, 20, 6, 0x0070, 0x10, 26, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) PIN_FIELD_BASE(21, 24, 6, 0x0070, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) PIN_FIELD_BASE(25, 25, 6, 0x0070, 0x10, 30, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) PIN_FIELD_BASE(26, 26, 6, 0x0070, 0x10, 23, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316) PIN_FIELD_BASE(27, 27, 6, 0x0070, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) PIN_FIELD_BASE(28, 29, 6, 0x0070, 0x10, 24, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) PIN_FIELD_BASE(30, 30, 6, 0x0070, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) PIN_FIELD_BASE(31, 31, 6, 0x0070, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) PIN_FIELD_BASE(32, 32, 6, 0x0070, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) PIN_FIELD_BASE(33, 33, 6, 0x0070, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322) PIN_FIELD_BASE(34, 34, 6, 0x0070, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) PIN_FIELD_BASE(35, 35, 6, 0x0080, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) PIN_FIELD_BASE(36, 36, 6, 0x0080, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) PIN_FIELD_BASE(37, 37, 6, 0x0080, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) PIN_FIELD_BASE(38, 41, 6, 0x0080, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) PIN_FIELD_BASE(42, 43, 6, 0x0070, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328) PIN_FIELD_BASE(44, 44, 6, 0x0070, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) PIN_FIELD_BASE(45, 45, 3, 0x0080, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) PIN_FIELD_BASE(46, 46, 3, 0x0080, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) PIN_FIELD_BASE(47, 47, 3, 0x0080, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) PIN_FIELD_BASE(48, 48, 3, 0x0080, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) PIN_FIELD_BASE(49, 49, 3, 0x0080, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334) PIN_FIELD_BASE(50, 50, 3, 0x0080, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) PIN_FIELD_BASE(51, 51, 3, 0x0080, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) PIN_FIELD_BASE(52, 52, 3, 0x0080, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) PIN_FIELD_BASE(53, 54, 3, 0x0080, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) PIN_FIELD_BASE(55, 55, 3, 0x0080, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339) PIN_FIELD_BASE(56, 56, 3, 0x0080, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) PIN_FIELD_BASE(61, 61, 3, 0x0080, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) PIN_FIELD_BASE(62, 62, 3, 0x0080, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) PIN_FIELD_BASE(63, 63, 3, 0x0080, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) PIN_FIELD_BASE(64, 64, 3, 0x0080, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) PIN_FIELD_BASE(65, 65, 3, 0x0080, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345) PIN_FIELD_BASE(66, 66, 3, 0x0080, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) PIN_FIELD_BASE(67, 67, 2, 0x00a0, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) PIN_FIELD_BASE(68, 68, 2, 0x00a0, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) PIN_FIELD_BASE(69, 69, 2, 0x00a0, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) PIN_FIELD_BASE(70, 71, 2, 0x00a0, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) PIN_FIELD_BASE(72, 72, 4, 0x0040, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) PIN_FIELD_BASE(73, 73, 4, 0x0040, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) PIN_FIELD_BASE(74, 74, 4, 0x0040, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353) PIN_FIELD_BASE(75, 75, 4, 0x0040, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) PIN_FIELD_BASE(76, 76, 4, 0x0040, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) PIN_FIELD_BASE(77, 77, 4, 0x0040, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) PIN_FIELD_BASE(78, 78, 2, 0x0090, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) PIN_FIELD_BASE(79, 79, 2, 0x0090, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) PIN_FIELD_BASE(80, 81, 2, 0x0090, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359) PIN_FIELD_BASE(82, 88, 2, 0x0090, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) PIN_FIELD_BASE(89, 89, 2, 0x0090, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) PIN_FIELD_BASE(90, 90, 2, 0x0090, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) PIN_FIELD_BASE(91, 91, 2, 0x0090, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363) PIN_FIELD_BASE(92, 92, 2, 0x0090, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) PIN_FIELD_BASE(93, 93, 4, 0x0040, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) PIN_FIELD_BASE(94, 94, 2, 0x0090, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) PIN_FIELD_BASE(95, 95, 4, 0x0040, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367) PIN_FIELD_BASE(96, 96, 4, 0x0040, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) PIN_FIELD_BASE(97, 97, 4, 0x0040, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) PIN_FIELD_BASE(98, 98, 4, 0x0040, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) PIN_FIELD_BASE(99, 99, 2, 0x00a0, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) PIN_FIELD_BASE(100, 100, 2, 0x00a0, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372) PIN_FIELD_BASE(101, 101, 2, 0x00a0, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) PIN_FIELD_BASE(102, 102, 2, 0x00a0, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) PIN_FIELD_BASE(103, 103, 2, 0x00a0, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) PIN_FIELD_BASE(104, 104, 2, 0x00a0, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376) PIN_FIELD_BASE(105, 105, 2, 0x0090, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) PIN_FIELD_BASE(106, 106, 2, 0x0090, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) PIN_FIELD_BASE(107, 108, 2, 0x0090, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) PIN_FIELD_BASE(109, 109, 2, 0x0090, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) PIN_FIELD_BASE(110, 110, 2, 0x00a0, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381) PIN_FIELD_BASE(111, 111, 2, 0x00a0, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) PIN_FIELD_BASE(112, 112, 2, 0x00a0, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) PIN_FIELD_BASE(113, 113, 2, 0x00a0, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) PIN_FIELD_BASE(114, 115, 2, 0x0090, 0x10, 26, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385) PIN_FIELD_BASE(116, 117, 2, 0x0090, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) PIN_FIELD_BASE(118, 118, 2, 0x0090, 0x10, 31, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) PIN_FIELD_BASE(119, 119, 2, 0x00a0, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) PIN_FIELD_BASE(120, 121, 2, 0x0090, 0x10, 23, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) PIN_FIELD_BASE(122, 123, 2, 0x0090, 0x10, 28, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390) PIN_FIELD_BASE(124, 125, 2, 0x00a0, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) PIN_FIELD_BASE(126, 127, 1, 0x0070, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) PIN_FIELD_BASE(140, 141, 1, 0x0070, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) PIN_FIELD_BASE(142, 142, 1, 0x0070, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) PIN_FIELD_BASE(143, 143, 5, 0x0040, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) PIN_FIELD_BASE(144, 144, 5, 0x0040, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396) PIN_FIELD_BASE(145, 145, 5, 0x0040, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) PIN_FIELD_BASE(146, 146, 5, 0x0040, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) PIN_FIELD_BASE(147, 155, 5, 0x0040, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) PIN_FIELD_BASE(156, 157, 5, 0x0040, 0x10, 22, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) PIN_FIELD_BASE(158, 158, 5, 0x0040, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) PIN_FIELD_BASE(159, 159, 5, 0x0040, 0x10, 24, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402) PIN_FIELD_BASE(160, 161, 5, 0x0040, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) PIN_FIELD_BASE(162, 166, 5, 0x0040, 0x10, 25, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) PIN_FIELD_BASE(179, 179, 4, 0x0040, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) PIN_FIELD_BASE(180, 180, 4, 0x0040, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406) PIN_FIELD_BASE(181, 183, 1, 0x0070, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) PIN_FIELD_BASE(184, 184, 1, 0x0070, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) PIN_FIELD_BASE(185, 185, 1, 0x0070, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) PIN_FIELD_BASE(186, 186, 1, 0x0070, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) PIN_FIELD_BASE(187, 187, 1, 0x0070, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) PIN_FIELD_BASE(188, 188, 1, 0x0070, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) PIN_FIELD_BASE(189, 189, 5, 0x0040, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413) PIN_FIELD_BASE(190, 190, 5, 0x0040, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) PIN_FIELD_BASE(191, 192, 5, 0x0040, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) PIN_FIELD_BASE(193, 194, 5, 0x0040, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) PIN_FIELD_BASE(195, 195, 2, 0x0090, 0x10, 30, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417) PIN_FIELD_BASE(196, 196, 2, 0x0090, 0x10, 25, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) PIN_FIELD_BASE(197, 197, 2, 0x00a0, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) PIN_FIELD_BASE(198, 199, 4, 0x0040, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) PIN_FIELD_BASE(200, 201, 6, 0x0080, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421) PIN_FIELD_BASE(202, 202, 4, 0x0040, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) static const struct mtk_pin_field_calc mt6779_pin_pd_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) PIN_FIELD_BASE(0, 9, 6, 0x0050, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) PIN_FIELD_BASE(16, 16, 3, 0x0060, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427) PIN_FIELD_BASE(17, 18, 6, 0x0050, 0x10, 28, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) PIN_FIELD_BASE(19, 19, 6, 0x0050, 0x10, 27, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) PIN_FIELD_BASE(20, 20, 6, 0x0050, 0x10, 26, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) PIN_FIELD_BASE(21, 24, 6, 0x0050, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431) PIN_FIELD_BASE(25, 25, 6, 0x0050, 0x10, 30, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) PIN_FIELD_BASE(26, 26, 6, 0x0050, 0x10, 23, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) PIN_FIELD_BASE(27, 27, 6, 0x0050, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) PIN_FIELD_BASE(28, 29, 6, 0x0050, 0x10, 24, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435) PIN_FIELD_BASE(30, 30, 6, 0x0050, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) PIN_FIELD_BASE(31, 31, 6, 0x0050, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) PIN_FIELD_BASE(32, 32, 6, 0x0050, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) PIN_FIELD_BASE(33, 33, 6, 0x0050, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439) PIN_FIELD_BASE(34, 34, 6, 0x0050, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) PIN_FIELD_BASE(35, 35, 6, 0x0060, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) PIN_FIELD_BASE(36, 36, 6, 0x0060, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) PIN_FIELD_BASE(37, 37, 6, 0x0060, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443) PIN_FIELD_BASE(38, 41, 6, 0x0060, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) PIN_FIELD_BASE(42, 43, 6, 0x0050, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) PIN_FIELD_BASE(44, 44, 6, 0x0050, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) PIN_FIELD_BASE(45, 45, 3, 0x0060, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) PIN_FIELD_BASE(46, 46, 3, 0x0060, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448) PIN_FIELD_BASE(47, 47, 3, 0x0060, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) PIN_FIELD_BASE(48, 48, 3, 0x0060, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) PIN_FIELD_BASE(49, 49, 3, 0x0060, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) PIN_FIELD_BASE(50, 50, 3, 0x0060, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) PIN_FIELD_BASE(51, 51, 3, 0x0060, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453) PIN_FIELD_BASE(52, 52, 3, 0x0060, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) PIN_FIELD_BASE(53, 54, 3, 0x0060, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) PIN_FIELD_BASE(55, 55, 3, 0x0060, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) PIN_FIELD_BASE(56, 56, 3, 0x0060, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) PIN_FIELD_BASE(61, 61, 3, 0x0060, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458) PIN_FIELD_BASE(62, 62, 3, 0x0060, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) PIN_FIELD_BASE(63, 63, 3, 0x0060, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) PIN_FIELD_BASE(64, 64, 3, 0x0060, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) PIN_FIELD_BASE(65, 65, 3, 0x0060, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) PIN_FIELD_BASE(66, 66, 3, 0x0060, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463) PIN_FIELD_BASE(67, 67, 2, 0x0080, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) PIN_FIELD_BASE(68, 68, 2, 0x0080, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) PIN_FIELD_BASE(69, 69, 2, 0x0080, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) PIN_FIELD_BASE(70, 71, 2, 0x0080, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) PIN_FIELD_BASE(72, 72, 4, 0x0030, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) PIN_FIELD_BASE(73, 73, 4, 0x0030, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) PIN_FIELD_BASE(74, 74, 4, 0x0030, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) PIN_FIELD_BASE(75, 75, 4, 0x0030, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471) PIN_FIELD_BASE(76, 76, 4, 0x0030, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) PIN_FIELD_BASE(77, 77, 4, 0x0030, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) PIN_FIELD_BASE(78, 78, 2, 0x0070, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) PIN_FIELD_BASE(79, 79, 2, 0x0070, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) PIN_FIELD_BASE(80, 81, 2, 0x0070, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) PIN_FIELD_BASE(82, 88, 2, 0x0070, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) PIN_FIELD_BASE(89, 89, 2, 0x0070, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478) PIN_FIELD_BASE(90, 90, 2, 0x0070, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) PIN_FIELD_BASE(91, 91, 2, 0x0070, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) PIN_FIELD_BASE(92, 92, 2, 0x0070, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) PIN_FIELD_BASE(93, 93, 4, 0x0030, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) PIN_FIELD_BASE(94, 94, 2, 0x0070, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483) PIN_FIELD_BASE(95, 95, 4, 0x0030, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) PIN_FIELD_BASE(96, 96, 4, 0x0030, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) PIN_FIELD_BASE(97, 97, 4, 0x0030, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) PIN_FIELD_BASE(98, 98, 4, 0x0030, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) PIN_FIELD_BASE(99, 99, 2, 0x0080, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488) PIN_FIELD_BASE(100, 100, 2, 0x0080, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) PIN_FIELD_BASE(101, 101, 2, 0x0080, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) PIN_FIELD_BASE(102, 102, 2, 0x0080, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) PIN_FIELD_BASE(103, 103, 2, 0x0080, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) PIN_FIELD_BASE(104, 104, 2, 0x0080, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) PIN_FIELD_BASE(105, 105, 2, 0x0070, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494) PIN_FIELD_BASE(106, 106, 2, 0x0070, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) PIN_FIELD_BASE(107, 108, 2, 0x0070, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) PIN_FIELD_BASE(109, 109, 2, 0x0070, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) PIN_FIELD_BASE(110, 110, 2, 0x0080, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) PIN_FIELD_BASE(111, 111, 2, 0x0080, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) PIN_FIELD_BASE(112, 112, 2, 0x0080, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500) PIN_FIELD_BASE(113, 113, 2, 0x0080, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) PIN_FIELD_BASE(114, 115, 2, 0x0070, 0x10, 26, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) PIN_FIELD_BASE(116, 117, 2, 0x0070, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) PIN_FIELD_BASE(118, 118, 2, 0x0070, 0x10, 31, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) PIN_FIELD_BASE(119, 119, 2, 0x0080, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505) PIN_FIELD_BASE(120, 121, 2, 0x0070, 0x10, 23, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) PIN_FIELD_BASE(122, 123, 2, 0x0070, 0x10, 28, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) PIN_FIELD_BASE(124, 125, 2, 0x0080, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) PIN_FIELD_BASE(126, 127, 1, 0x0050, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509) PIN_FIELD_BASE(140, 141, 1, 0x0050, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) PIN_FIELD_BASE(142, 142, 1, 0x0050, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) PIN_FIELD_BASE(143, 143, 5, 0x0030, 0x10, 15, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) PIN_FIELD_BASE(144, 144, 5, 0x0030, 0x10, 17, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) PIN_FIELD_BASE(145, 145, 5, 0x0030, 0x10, 16, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) PIN_FIELD_BASE(146, 146, 5, 0x0030, 0x10, 12, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515) PIN_FIELD_BASE(147, 155, 5, 0x0030, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) PIN_FIELD_BASE(156, 157, 5, 0x0030, 0x10, 22, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) PIN_FIELD_BASE(158, 158, 5, 0x0030, 0x10, 21, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) PIN_FIELD_BASE(159, 159, 5, 0x0030, 0x10, 24, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) PIN_FIELD_BASE(160, 161, 5, 0x0030, 0x10, 19, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) PIN_FIELD_BASE(162, 166, 5, 0x0030, 0x10, 25, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521) PIN_FIELD_BASE(179, 179, 4, 0x0030, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) PIN_FIELD_BASE(180, 180, 4, 0x0030, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) PIN_FIELD_BASE(181, 183, 1, 0x0050, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) PIN_FIELD_BASE(184, 184, 1, 0x0050, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) PIN_FIELD_BASE(185, 185, 1, 0x0050, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526) PIN_FIELD_BASE(186, 186, 1, 0x0050, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) PIN_FIELD_BASE(187, 187, 1, 0x0050, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) PIN_FIELD_BASE(188, 188, 1, 0x0050, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) PIN_FIELD_BASE(189, 189, 5, 0x0030, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) PIN_FIELD_BASE(190, 190, 5, 0x0030, 0x10, 18, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) PIN_FIELD_BASE(191, 192, 5, 0x0030, 0x10, 13, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532) PIN_FIELD_BASE(193, 194, 5, 0x0030, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) PIN_FIELD_BASE(195, 195, 2, 0x0070, 0x10, 30, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) PIN_FIELD_BASE(196, 196, 2, 0x0070, 0x10, 25, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) PIN_FIELD_BASE(197, 197, 2, 0x0080, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) PIN_FIELD_BASE(198, 199, 4, 0x0030, 0x10, 14, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537) PIN_FIELD_BASE(200, 201, 6, 0x0060, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) PIN_FIELD_BASE(202, 202, 4, 0x0030, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) static const struct mtk_pin_field_calc mt6779_pin_drv_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542) PINS_FIELD_BASE(0, 9, 6, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) PIN_FIELD_BASE(10, 16, 3, 0x0000, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) PINS_FIELD_BASE(17, 19, 6, 0x0010, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) PIN_FIELD_BASE(20, 20, 6, 0x0010, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) PINS_FIELD_BASE(21, 24, 6, 0x0000, 0x10, 21, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) PIN_FIELD_BASE(25, 25, 6, 0x0010, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548) PIN_FIELD_BASE(26, 26, 6, 0x0000, 0x10, 24, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) PIN_FIELD_BASE(27, 27, 6, 0x0000, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) PIN_FIELD_BASE(28, 28, 6, 0x0000, 0x10, 27, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) PIN_FIELD_BASE(29, 29, 6, 0x0010, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) PINS_FIELD_BASE(30, 32, 6, 0x0000, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553) PIN_FIELD_BASE(33, 33, 6, 0x0000, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) PIN_FIELD_BASE(34, 34, 6, 0x0000, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) PINS_FIELD_BASE(35, 41, 6, 0x0010, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) PIN_FIELD_BASE(42, 43, 6, 0x0000, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557) PIN_FIELD_BASE(44, 44, 6, 0x0000, 0x10, 18, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) PIN_FIELD_BASE(45, 45, 3, 0x0010, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) PIN_FIELD_BASE(46, 46, 3, 0x0020, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) PINS_FIELD_BASE(47, 49, 3, 0x0020, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561) PIN_FIELD_BASE(50, 50, 3, 0x0020, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) PIN_FIELD_BASE(51, 51, 3, 0x0010, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) PIN_FIELD_BASE(52, 52, 3, 0x0010, 0x10, 21, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) PINS_FIELD_BASE(53, 54, 3, 0x0020, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) PIN_FIELD_BASE(55, 55, 3, 0x0010, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) PIN_FIELD_BASE(56, 56, 3, 0x0010, 0x10, 27, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) PIN_FIELD_BASE(57, 57, 3, 0x0010, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) PIN_FIELD_BASE(58, 58, 3, 0x0000, 0x10, 27, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) PIN_FIELD_BASE(59, 60, 3, 0x0000, 0x10, 21, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570) PIN_FIELD_BASE(61, 61, 3, 0x0010, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) PIN_FIELD_BASE(62, 62, 3, 0x0010, 0x10, 24, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) PINS_FIELD_BASE(63, 65, 3, 0x0010, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) PIN_FIELD_BASE(66, 66, 3, 0x0010, 0x10, 18, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) PINS_FIELD_BASE(67, 69, 2, 0x0010, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) PIN_FIELD_BASE(70, 71, 2, 0x0010, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576) PINS_FIELD_BASE(72, 75, 4, 0x0000, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) PINS_FIELD_BASE(76, 77, 4, 0x0000, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) PINS_FIELD_BASE(78, 86, 2, 0x0000, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) PINS_FIELD_BASE(87, 92, 2, 0x0000, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) PIN_FIELD_BASE(93, 93, 4, 0x0000, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581) PIN_FIELD_BASE(94, 94, 2, 0x0000, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) PINS_FIELD_BASE(95, 96, 4, 0x0000, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) PINS_FIELD_BASE(97, 98, 4, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) PINS_FIELD_BASE(99, 100, 2, 0x0010, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585) PINS_FIELD_BASE(101, 102, 2, 0x0010, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) PINS_FIELD_BASE(103, 104, 2, 0x0010, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) PINS_FIELD_BASE(105, 109, 2, 0x0000, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) PIN_FIELD_BASE(110, 110, 2, 0x0010, 0x10, 18, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589) PIN_FIELD_BASE(111, 111, 2, 0x0010, 0x10, 24, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) PIN_FIELD_BASE(112, 112, 2, 0x0010, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) PIN_FIELD_BASE(113, 113, 2, 0x0010, 0x10, 21, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) PINS_FIELD_BASE(114, 115, 2, 0x0000, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) PIN_FIELD_BASE(116, 117, 2, 0x0000, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594) PINS_FIELD_BASE(118, 119, 2, 0x0000, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) PIN_FIELD_BASE(120, 121, 2, 0x0000, 0x10, 21, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) PINS_FIELD_BASE(122, 125, 2, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) PINS_FIELD_BASE(126, 127, 1, 0x0000, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598) PIN_FIELD_BASE(128, 128, 1, 0x0000, 0x10, 29, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) PIN_FIELD_BASE(129, 129, 1, 0x0010, 0x10, 0, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) PIN_FIELD_BASE(130, 130, 1, 0x0000, 0x10, 27, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) PIN_FIELD_BASE(131, 131, 1, 0x0010, 0x10, 2, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602) PIN_FIELD_BASE(132, 132, 1, 0x0010, 0x10, 6, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) PIN_FIELD_BASE(133, 133, 1, 0x0010, 0x10, 4, 2),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) PIN_FIELD_BASE(134, 135, 1, 0x0000, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) PINS_FIELD_BASE(136, 139, 1, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) PINS_FIELD_BASE(140, 141, 1, 0x0000, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) PIN_FIELD_BASE(142, 142, 1, 0x0000, 0x10, 24, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608) PINS_FIELD_BASE(143, 146, 5, 0x0000, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) PINS_FIELD_BASE(147, 155, 5, 0x0000, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) PIN_FIELD_BASE(156, 157, 5, 0x0000, 0x10, 21, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) PIN_FIELD_BASE(158, 158, 5, 0x0000, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612) PIN_FIELD_BASE(159, 159, 5, 0x0000, 0x10, 27, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) PIN_FIELD_BASE(160, 161, 5, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) PINS_FIELD_BASE(162, 166, 5, 0x0000, 0x10, 18, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) PIN_FIELD_BASE(167, 167, 7, 0x0000, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616) PINS_FIELD_BASE(168, 174, 7, 0x0000, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) PIN_FIELD_BASE(175, 175, 7, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) PIN_FIELD_BASE(176, 176, 7, 0x0000, 0x10, 0, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) PINS_FIELD_BASE(177, 178, 7, 0x0000, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620) PIN_FIELD_BASE(179, 180, 4, 0x0000, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) PIN_FIELD_BASE(181, 183, 1, 0x0010, 0x10, 8, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) PINS_FIELD_BASE(184, 186, 1, 0x0000, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) PIN_FIELD_BASE(187, 188, 1, 0x0000, 0x10, 18, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) PIN_FIELD_BASE(189, 189, 5, 0x0000, 0x10, 6, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) PINS_FIELD_BASE(190, 194, 5, 0x0000, 0x10, 3, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) PIN_FIELD_BASE(195, 195, 2, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) PIN_FIELD_BASE(196, 196, 2, 0x0000, 0x10, 27, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) PIN_FIELD_BASE(197, 197, 2, 0x0000, 0x10, 9, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629) PIN_FIELD_BASE(198, 199, 4, 0x0000, 0x10, 21, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) PINS_FIELD_BASE(200, 201, 6, 0x0010, 0x10, 15, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) PIN_FIELD_BASE(202, 202, 4, 0x0000, 0x10, 12, 3),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) static const struct mtk_pin_field_calc mt6779_pin_pupd_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) PIN_FIELD_BASE(10, 15, 3, 0x0070, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) PIN_FIELD_BASE(57, 57, 3, 0x0070, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) PIN_FIELD_BASE(58, 58, 3, 0x0070, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638) PIN_FIELD_BASE(59, 60, 3, 0x0070, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) PIN_FIELD_BASE(128, 129, 1, 0x0060, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) PIN_FIELD_BASE(130, 130, 1, 0x0060, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) PIN_FIELD_BASE(131, 131, 1, 0x0060, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642) PIN_FIELD_BASE(132, 132, 1, 0x0060, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) PIN_FIELD_BASE(133, 133, 1, 0x0060, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) PIN_FIELD_BASE(134, 135, 1, 0x0060, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) PIN_FIELD_BASE(136, 136, 1, 0x0060, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646) PIN_FIELD_BASE(137, 137, 1, 0x0060, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) PIN_FIELD_BASE(138, 138, 1, 0x0060, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) PIN_FIELD_BASE(139, 139, 1, 0x0060, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) PIN_FIELD_BASE(167, 168, 7, 0x0020, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) PIN_FIELD_BASE(169, 169, 7, 0x0020, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651) PIN_FIELD_BASE(170, 170, 7, 0x0020, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) PIN_FIELD_BASE(171, 171, 7, 0x0020, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) PIN_FIELD_BASE(172, 172, 7, 0x0020, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) PIN_FIELD_BASE(173, 173, 7, 0x0020, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655) PIN_FIELD_BASE(174, 175, 7, 0x0020, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) PIN_FIELD_BASE(176, 176, 7, 0x0020, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) PIN_FIELD_BASE(177, 177, 7, 0x0020, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) PIN_FIELD_BASE(178, 178, 7, 0x0020, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) static const struct mtk_pin_field_calc mt6779_pin_r0_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) PIN_FIELD_BASE(10, 15, 3, 0x0090, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663) PIN_FIELD_BASE(57, 57, 3, 0x0090, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) PIN_FIELD_BASE(58, 58, 3, 0x0090, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) PIN_FIELD_BASE(59, 60, 3, 0x0090, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) PIN_FIELD_BASE(128, 129, 1, 0x0080, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) PIN_FIELD_BASE(130, 130, 1, 0x0080, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668) PIN_FIELD_BASE(131, 131, 1, 0x0080, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) PIN_FIELD_BASE(132, 132, 1, 0x0080, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) PIN_FIELD_BASE(133, 133, 1, 0x0080, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) PIN_FIELD_BASE(134, 135, 1, 0x0080, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672) PIN_FIELD_BASE(136, 136, 1, 0x0080, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) PIN_FIELD_BASE(137, 137, 1, 0x0080, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) PIN_FIELD_BASE(138, 138, 1, 0x0080, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) PIN_FIELD_BASE(139, 139, 1, 0x0080, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) PIN_FIELD_BASE(167, 168, 7, 0x0030, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) PIN_FIELD_BASE(169, 169, 7, 0x0030, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678) PIN_FIELD_BASE(170, 170, 7, 0x0030, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) PIN_FIELD_BASE(171, 171, 7, 0x0030, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) PIN_FIELD_BASE(172, 172, 7, 0x0030, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) PIN_FIELD_BASE(173, 173, 7, 0x0030, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) PIN_FIELD_BASE(174, 175, 7, 0x0030, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) PIN_FIELD_BASE(176, 176, 7, 0x0030, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) PIN_FIELD_BASE(177, 177, 7, 0x0030, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) PIN_FIELD_BASE(178, 178, 7, 0x0030, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) static const struct mtk_pin_field_calc mt6779_pin_r1_range[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) PIN_FIELD_BASE(10, 15, 3, 0x00a0, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690) PIN_FIELD_BASE(57, 57, 3, 0x00a0, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) PIN_FIELD_BASE(58, 58, 3, 0x00a0, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) PIN_FIELD_BASE(59, 60, 3, 0x00a0, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) PIN_FIELD_BASE(128, 129, 1, 0x0090, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694) PIN_FIELD_BASE(130, 130, 1, 0x0090, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) PIN_FIELD_BASE(131, 131, 1, 0x0090, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) PIN_FIELD_BASE(132, 132, 1, 0x0090, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) PIN_FIELD_BASE(133, 133, 1, 0x0090, 0x10, 10, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) PIN_FIELD_BASE(134, 135, 1, 0x0090, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) PIN_FIELD_BASE(136, 136, 1, 0x0090, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) PIN_FIELD_BASE(137, 137, 1, 0x0090, 0x10, 2, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) PIN_FIELD_BASE(138, 138, 1, 0x0090, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702) PIN_FIELD_BASE(139, 139, 1, 0x0090, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) PIN_FIELD_BASE(167, 168, 7, 0x0040, 0x10, 1, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) PIN_FIELD_BASE(169, 169, 7, 0x0040, 0x10, 4, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) PIN_FIELD_BASE(170, 170, 7, 0x0040, 0x10, 6, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) PIN_FIELD_BASE(171, 171, 7, 0x0040, 0x10, 8, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) PIN_FIELD_BASE(172, 172, 7, 0x0040, 0x10, 3, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708) PIN_FIELD_BASE(173, 173, 7, 0x0040, 0x10, 7, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) PIN_FIELD_BASE(174, 175, 7, 0x0040, 0x10, 9, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) PIN_FIELD_BASE(176, 176, 7, 0x0040, 0x10, 0, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) PIN_FIELD_BASE(177, 177, 7, 0x0040, 0x10, 5, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712) PIN_FIELD_BASE(178, 178, 7, 0x0040, 0x10, 11, 1),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715) static const struct mtk_pin_reg_calc mt6779_reg_cals[PINCTRL_PIN_REG_MAX] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt6779_pin_mode_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt6779_pin_dir_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt6779_pin_di_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719) [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt6779_pin_do_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt6779_pin_smt_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt6779_pin_ies_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) [PINCTRL_PIN_REG_PU] = MTK_RANGE(mt6779_pin_pu_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723) [PINCTRL_PIN_REG_PD] = MTK_RANGE(mt6779_pin_pd_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt6779_pin_drv_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt6779_pin_pupd_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt6779_pin_r0_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727) [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt6779_pin_r1_range),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) static const char * const mt6779_pinctrl_register_base_names[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731) "gpio", "iocfg_rm", "iocfg_br", "iocfg_lm", "iocfg_lb",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) "iocfg_rt", "iocfg_lt", "iocfg_tl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735) static const struct mtk_eint_hw mt6779_eint_hw = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) .port_mask = 7,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) .ports = 6,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) .ap_num = 195,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739) .db_cnt = 13,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) static const struct mtk_pin_soc mt6779_data = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) .reg_cal = mt6779_reg_cals,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744) .pins = mtk_pins_mt6779,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) .npins = ARRAY_SIZE(mtk_pins_mt6779),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) .ngrps = ARRAY_SIZE(mtk_pins_mt6779),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) .eint_hw = &mt6779_eint_hw,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) .gpio_m = 0,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749) .ies_present = true,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) .base_names = mt6779_pinctrl_register_base_names,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) .nbase_names = ARRAY_SIZE(mt6779_pinctrl_register_base_names),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) .bias_set_combo = mtk_pinconf_bias_set_combo,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) .bias_get_combo = mtk_pinconf_bias_get_combo,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754) .drive_set = mtk_pinconf_drive_set_raw,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) .drive_get = mtk_pinconf_drive_get_raw,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) .adv_pull_get = mtk_pinconf_adv_pull_get,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) .adv_pull_set = mtk_pinconf_adv_pull_set,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) static const struct of_device_id mt6779_pinctrl_of_match[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) { .compatible = "mediatek,mt6779-pinctrl", },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762) { }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) static int mt6779_pinctrl_probe(struct platform_device *pdev)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) return mtk_paris_pinctrl_probe(pdev, &mt6779_data);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770) static struct platform_driver mt6779_pinctrl_driver = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) .driver = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) .name = "mt6779-pinctrl",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) .of_match_table = mt6779_pinctrl_of_match,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774) },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) .probe = mt6779_pinctrl_probe,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778) static int __init mt6779_pinctrl_init(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) return platform_driver_register(&mt6779_pinctrl_driver);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782) arch_initcall(mt6779_pinctrl_init);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) MODULE_LICENSE("GPL v2");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) MODULE_DESCRIPTION("MediaTek MT6779 Pinctrl Driver");