Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/pinctrl/mediatek/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 17 kB image not shown  

Quelle  pinctrl-mt8365.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2021 MediaTek Inc.
 * Author: Zhiyong Tao <zhiyong.tao@mediatek.com>
 */


#include <dt-bindings/pinctrl/mt65xx.h>
#include <linux/of.h>
#include <linux/module.h>
#include <linux/pinctrl/pinctrl.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>

#include "pinctrl-mtk-common.h"
#include "pinctrl-mtk-mt8365.h"

static const struct mtk_drv_group_desc mt8365_drv_grp[] = {
 /* 0E4E8SR 4/8/12/16 */
 MTK_DRV_GRP(416124),
 /* 0E2E4SR  2/4/6/8 */
 MTK_DRV_GRP(28122),
 /* E8E4E2  2/4/6/8/10/12/14/16 */
 MTK_DRV_GRP(216022)
};

static const struct mtk_pin_drv_grp mt8365_pin_drv[] = {

 MTK_PIN_DRV_GRP(00x710, 02),
 MTK_PIN_DRV_GRP(10x710, 02),
 MTK_PIN_DRV_GRP(20x710, 02),
 MTK_PIN_DRV_GRP(30x710, 02),
 MTK_PIN_DRV_GRP(40x710, 42),
 MTK_PIN_DRV_GRP(50x710, 42),
 MTK_PIN_DRV_GRP(60x710, 42),
 MTK_PIN_DRV_GRP(70x710, 42),
 MTK_PIN_DRV_GRP(80x710, 82),
 MTK_PIN_DRV_GRP(90x710, 82),
 MTK_PIN_DRV_GRP(100x710, 82),
 MTK_PIN_DRV_GRP(110x710, 82),
 MTK_PIN_DRV_GRP(120x710, 122),
 MTK_PIN_DRV_GRP(130x710, 122),
 MTK_PIN_DRV_GRP(140x710, 122),
 MTK_PIN_DRV_GRP(150x710, 122),
 MTK_PIN_DRV_GRP(160x710, 162),
 MTK_PIN_DRV_GRP(170x710, 162),
 MTK_PIN_DRV_GRP(180x710, 162),
 MTK_PIN_DRV_GRP(190x710, 202),
 MTK_PIN_DRV_GRP(200x710, 242),
 MTK_PIN_DRV_GRP(210x710, 242),
 MTK_PIN_DRV_GRP(220x710, 282),
 MTK_PIN_DRV_GRP(230x720, 02),
 MTK_PIN_DRV_GRP(240x720, 02),
 MTK_PIN_DRV_GRP(250x720, 02),
 MTK_PIN_DRV_GRP(260x720, 42),
 MTK_PIN_DRV_GRP(270x720, 42),
 MTK_PIN_DRV_GRP(280x720, 42),
 MTK_PIN_DRV_GRP(290x720, 42),
 MTK_PIN_DRV_GRP(300x720, 82),
 MTK_PIN_DRV_GRP(310x720, 82),
 MTK_PIN_DRV_GRP(320x720, 82),
 MTK_PIN_DRV_GRP(330x720, 82),
 MTK_PIN_DRV_GRP(340x720, 82),
 MTK_PIN_DRV_GRP(350x720, 122),
 MTK_PIN_DRV_GRP(360x720, 122),
 MTK_PIN_DRV_GRP(370x720, 122),
 MTK_PIN_DRV_GRP(380x720, 122),
 MTK_PIN_DRV_GRP(390x720, 122),
 MTK_PIN_DRV_GRP(400x720, 122),
 MTK_PIN_DRV_GRP(410x720, 162),
 MTK_PIN_DRV_GRP(420x720, 162),
 MTK_PIN_DRV_GRP(430x720, 162),
 MTK_PIN_DRV_GRP(440x720, 162),
 MTK_PIN_DRV_GRP(450x720, 202),
 MTK_PIN_DRV_GRP(460x720, 202),
 MTK_PIN_DRV_GRP(470x720, 202),
 MTK_PIN_DRV_GRP(480x720, 202),
 MTK_PIN_DRV_GRP(490x720, 242),
 MTK_PIN_DRV_GRP(500x720, 242),
 MTK_PIN_DRV_GRP(510x720, 242),
 MTK_PIN_DRV_GRP(520x720, 242),
 MTK_PIN_DRV_GRP(530x720, 242),
 MTK_PIN_DRV_GRP(540x720, 242),
 MTK_PIN_DRV_GRP(550x720, 242),
 MTK_PIN_DRV_GRP(560x720, 242),
 MTK_PIN_DRV_GRP(570x720, 282),
 MTK_PIN_DRV_GRP(580x720, 282),
 MTK_PIN_DRV_GRP(590x730, 02),
 MTK_PIN_DRV_GRP(600x730, 02),
 MTK_PIN_DRV_GRP(610x730, 42),
 MTK_PIN_DRV_GRP(620x730, 42),
 MTK_PIN_DRV_GRP(630x730, 82),
 MTK_PIN_DRV_GRP(640x730, 82),
 MTK_PIN_DRV_GRP(650x730, 122),
 MTK_PIN_DRV_GRP(660x730, 122),
 MTK_PIN_DRV_GRP(670x730, 122),
 MTK_PIN_DRV_GRP(680x730, 122),
 MTK_PIN_DRV_GRP(690x730, 122),
 MTK_PIN_DRV_GRP(700x730, 122),
 MTK_PIN_DRV_GRP(710x730, 162),
 MTK_PIN_DRV_GRP(720x730, 162),
 MTK_PIN_DRV_GRP(730x730, 162),
 MTK_PIN_DRV_GRP(740x730, 162),
 MTK_PIN_DRV_GRP(750x730, 162),
 MTK_PIN_DRV_GRP(760x730, 162),
 MTK_PIN_DRV_GRP(770x730, 162),
 MTK_PIN_DRV_GRP(780x730, 162),
 MTK_PIN_DRV_GRP(790x730, 162),
 MTK_PIN_DRV_GRP(800x730, 202),
 MTK_PIN_DRV_GRP(810x730, 242),
 MTK_PIN_DRV_GRP(820x730, 282),
 MTK_PIN_DRV_GRP(830x730, 282),
 MTK_PIN_DRV_GRP(840x730, 282),
 MTK_PIN_DRV_GRP(850x730, 282),
 MTK_PIN_DRV_GRP(860x740, 122),
 MTK_PIN_DRV_GRP(870x740, 162),
 MTK_PIN_DRV_GRP(880x740, 202),
 MTK_PIN_DRV_GRP(890x740, 242),
 MTK_PIN_DRV_GRP(900x740, 242),
 MTK_PIN_DRV_GRP(910x740, 242),
 MTK_PIN_DRV_GRP(920x740, 242),
 MTK_PIN_DRV_GRP(930x750, 82),
 MTK_PIN_DRV_GRP(940x750, 82),
 MTK_PIN_DRV_GRP(950x750, 82),
 MTK_PIN_DRV_GRP(960x750, 82),
 MTK_PIN_DRV_GRP(970x750, 242),
 MTK_PIN_DRV_GRP(980x750, 282),
 MTK_PIN_DRV_GRP(990x760, 02),
 MTK_PIN_DRV_GRP(1000x750, 82),
 MTK_PIN_DRV_GRP(1010x750, 82),
 MTK_PIN_DRV_GRP(1020x750, 82),
 MTK_PIN_DRV_GRP(1030x750, 82),
 MTK_PIN_DRV_GRP(1040x760, 202),
 MTK_PIN_DRV_GRP(1050x760, 242),
 MTK_PIN_DRV_GRP(1060x760, 242),
 MTK_PIN_DRV_GRP(1070x760, 242),
 MTK_PIN_DRV_GRP(1080x760, 242),
 MTK_PIN_DRV_GRP(1090x760, 242),
 MTK_PIN_DRV_GRP(1100x760, 282),
 MTK_PIN_DRV_GRP(1110x760, 282),
 MTK_PIN_DRV_GRP(1120x760, 282),
 MTK_PIN_DRV_GRP(1130x760, 282),
 MTK_PIN_DRV_GRP(1140x770, 02),
 MTK_PIN_DRV_GRP(1150x770, 02),
 MTK_PIN_DRV_GRP(1160x770, 02),
 MTK_PIN_DRV_GRP(1170x770, 42),
 MTK_PIN_DRV_GRP(1180x770, 42),
 MTK_PIN_DRV_GRP(1190x770, 42),
 MTK_PIN_DRV_GRP(1200x770, 82),
 MTK_PIN_DRV_GRP(1210x770, 82),
 MTK_PIN_DRV_GRP(1220x770, 82),
 MTK_PIN_DRV_GRP(1230x770, 122),
 MTK_PIN_DRV_GRP(1240x770, 122),
 MTK_PIN_DRV_GRP(1250x770, 122),
 MTK_PIN_DRV_GRP(1260x770, 162),
 MTK_PIN_DRV_GRP(1270x770, 162),
 MTK_PIN_DRV_GRP(1280x770, 162),
 MTK_PIN_DRV_GRP(1290x770, 202),
 MTK_PIN_DRV_GRP(1300x770, 202),
 MTK_PIN_DRV_GRP(1310x770, 202),
 MTK_PIN_DRV_GRP(1320x770, 202),
 MTK_PIN_DRV_GRP(1330x770, 202),
 MTK_PIN_DRV_GRP(1340x770, 202),
 MTK_PIN_DRV_GRP(1350x770, 202),
 MTK_PIN_DRV_GRP(1360x770, 242),
 MTK_PIN_DRV_GRP(1370x770, 242),
 MTK_PIN_DRV_GRP(1380x770, 242),
 MTK_PIN_DRV_GRP(1390x770, 242),
 MTK_PIN_DRV_GRP(1400x770, 242),
 MTK_PIN_DRV_GRP(1410x770, 242),
 MTK_PIN_DRV_GRP(1420x770, 242),
 MTK_PIN_DRV_GRP(1430x770, 242),
 MTK_PIN_DRV_GRP(1440x770, 242),
};

static const struct mtk_pin_spec_pupd_set_samereg mt8365_spec_pupd[] = {
 MTK_PIN_PUPD_SPEC_SR(220x070, 021),
 MTK_PIN_PUPD_SPEC_SR(230x070, 354),
 MTK_PIN_PUPD_SPEC_SR(240x070, 687),
 MTK_PIN_PUPD_SPEC_SR(250x070, 91110),
 MTK_PIN_PUPD_SPEC_SR(800x070, 141312),
 MTK_PIN_PUPD_SPEC_SR(810x070, 171615),
 MTK_PIN_PUPD_SPEC_SR(820x070, 201918),
 MTK_PIN_PUPD_SPEC_SR(830x070, 232221),
 MTK_PIN_PUPD_SPEC_SR(840x070, 262524),
 MTK_PIN_PUPD_SPEC_SR(850x070, 292827),
 MTK_PIN_PUPD_SPEC_SR(860x080, 210),
 MTK_PIN_PUPD_SPEC_SR(870x080, 543),
 MTK_PIN_PUPD_SPEC_SR(880x080, 876),
 MTK_PIN_PUPD_SPEC_SR(890x080, 11109),
 MTK_PIN_PUPD_SPEC_SR(900x080, 141312),
 MTK_PIN_PUPD_SPEC_SR(910x080, 171615),
 MTK_PIN_PUPD_SPEC_SR(920x080, 201918),
 MTK_PIN_PUPD_SPEC_SR(930x080, 232221),
 MTK_PIN_PUPD_SPEC_SR(940x080, 262524),
 MTK_PIN_PUPD_SPEC_SR(950x080, 292827),
 MTK_PIN_PUPD_SPEC_SR(960x090, 210),
 MTK_PIN_PUPD_SPEC_SR(970x090, 543),
 MTK_PIN_PUPD_SPEC_SR(980x090, 876),
 MTK_PIN_PUPD_SPEC_SR(990x090, 11109),
 MTK_PIN_PUPD_SPEC_SR(1000x090, 141312),
 MTK_PIN_PUPD_SPEC_SR(1010x090, 171615),
 MTK_PIN_PUPD_SPEC_SR(1020x090, 201918),
 MTK_PIN_PUPD_SPEC_SR(1030x090, 232221),
 MTK_PIN_PUPD_SPEC_SR(1040x090, 262524),
 MTK_PIN_PUPD_SPEC_SR(1050x090, 292827),
 MTK_PIN_PUPD_SPEC_SR(1060x0F0, 210),
 MTK_PIN_PUPD_SPEC_SR(1070x0F0, 543),
 MTK_PIN_PUPD_SPEC_SR(1080x0F0, 876),
 MTK_PIN_PUPD_SPEC_SR(1090x0F0, 11109),
};

static const struct mtk_pin_ies_smt_set mt8365_ies_set[] = {
 MTK_PIN_IES_SMT_SPEC(030x410, 0),
 MTK_PIN_IES_SMT_SPEC(470x410, 1),
 MTK_PIN_IES_SMT_SPEC(8110x410, 2),
 MTK_PIN_IES_SMT_SPEC(12150x410, 3),
 MTK_PIN_IES_SMT_SPEC(16180x410, 4),
 MTK_PIN_IES_SMT_SPEC(19190x410, 5),
 MTK_PIN_IES_SMT_SPEC(20210x410, 6),
 MTK_PIN_IES_SMT_SPEC(22220x410, 7),
 MTK_PIN_IES_SMT_SPEC(23250x410, 8),
 MTK_PIN_IES_SMT_SPEC(26290x410, 9),
 MTK_PIN_IES_SMT_SPEC(30340x410, 10),
 MTK_PIN_IES_SMT_SPEC(35400x410, 11),
 MTK_PIN_IES_SMT_SPEC(41440x410, 12),
 MTK_PIN_IES_SMT_SPEC(45480x410, 13),
 MTK_PIN_IES_SMT_SPEC(49560x410, 14),
 MTK_PIN_IES_SMT_SPEC(57580x410, 15),
 MTK_PIN_IES_SMT_SPEC(59600x410, 16),
 MTK_PIN_IES_SMT_SPEC(61620x410, 17),
 MTK_PIN_IES_SMT_SPEC(63640x410, 18),
 MTK_PIN_IES_SMT_SPEC(65700x410, 19),
 MTK_PIN_IES_SMT_SPEC(71790x410, 20),
 MTK_PIN_IES_SMT_SPEC(80800x410, 21),
 MTK_PIN_IES_SMT_SPEC(81810x410, 22),
 MTK_PIN_IES_SMT_SPEC(82820x410, 23),
 MTK_PIN_IES_SMT_SPEC(83830x410, 24),
 MTK_PIN_IES_SMT_SPEC(84840x410, 25),
 MTK_PIN_IES_SMT_SPEC(85850x410, 26),
 MTK_PIN_IES_SMT_SPEC(86860x410, 27),
 MTK_PIN_IES_SMT_SPEC(87870x410, 28),
 MTK_PIN_IES_SMT_SPEC(88880x410, 29),
 MTK_PIN_IES_SMT_SPEC(89890x410, 30),
 MTK_PIN_IES_SMT_SPEC(90900x410, 31),
 MTK_PIN_IES_SMT_SPEC(91910x420, 0),
 MTK_PIN_IES_SMT_SPEC(92920x420, 1),
 MTK_PIN_IES_SMT_SPEC(93930x420, 2),
 MTK_PIN_IES_SMT_SPEC(94940x420, 3),
 MTK_PIN_IES_SMT_SPEC(95950x420, 4),
 MTK_PIN_IES_SMT_SPEC(96960x420, 5),
 MTK_PIN_IES_SMT_SPEC(97970x420, 6),
 MTK_PIN_IES_SMT_SPEC(98980x420, 7),
 MTK_PIN_IES_SMT_SPEC(99990x420, 8),
 MTK_PIN_IES_SMT_SPEC(1001000x420, 9),
 MTK_PIN_IES_SMT_SPEC(1011010x420, 10),
 MTK_PIN_IES_SMT_SPEC(1021020x420, 11),
 MTK_PIN_IES_SMT_SPEC(1031030x420, 12),
 MTK_PIN_IES_SMT_SPEC(1041040x420, 13),
 MTK_PIN_IES_SMT_SPEC(1051090x420, 14),
 MTK_PIN_IES_SMT_SPEC(1101130x420, 15),
 MTK_PIN_IES_SMT_SPEC(1141160x420, 16),
 MTK_PIN_IES_SMT_SPEC(1171190x420, 17),
 MTK_PIN_IES_SMT_SPEC(1201220x420, 18),
 MTK_PIN_IES_SMT_SPEC(1231250x420, 19),
 MTK_PIN_IES_SMT_SPEC(1261280x420, 20),
 MTK_PIN_IES_SMT_SPEC(1291350x420, 21),
 MTK_PIN_IES_SMT_SPEC(1361440x420, 22),
};

static const struct mtk_pin_ies_smt_set mt8365_smt_set[] = {
 MTK_PIN_IES_SMT_SPEC(000x470, 0),
 MTK_PIN_IES_SMT_SPEC(110x470, 0),
 MTK_PIN_IES_SMT_SPEC(220x470, 0),
 MTK_PIN_IES_SMT_SPEC(330x470, 0),
 MTK_PIN_IES_SMT_SPEC(440x470, 1),
 MTK_PIN_IES_SMT_SPEC(550x470, 1),
 MTK_PIN_IES_SMT_SPEC(660x470, 1),
 MTK_PIN_IES_SMT_SPEC(770x470, 1),
 MTK_PIN_IES_SMT_SPEC(880x470, 2),
 MTK_PIN_IES_SMT_SPEC(990x470, 2),
 MTK_PIN_IES_SMT_SPEC(10100x470, 2),
 MTK_PIN_IES_SMT_SPEC(11110x470, 2),
 MTK_PIN_IES_SMT_SPEC(12120x470, 3),
 MTK_PIN_IES_SMT_SPEC(13130x470, 3),
 MTK_PIN_IES_SMT_SPEC(14140x470, 3),
 MTK_PIN_IES_SMT_SPEC(15150x470, 3),
 MTK_PIN_IES_SMT_SPEC(16160x470, 4),
 MTK_PIN_IES_SMT_SPEC(17170x470, 4),
 MTK_PIN_IES_SMT_SPEC(18180x470, 4),
 MTK_PIN_IES_SMT_SPEC(19190x470, 5),
 MTK_PIN_IES_SMT_SPEC(20200x470, 6),
 MTK_PIN_IES_SMT_SPEC(21210x470, 6),
 MTK_PIN_IES_SMT_SPEC(22220x470, 7),
 MTK_PIN_IES_SMT_SPEC(23230x470, 8),
 MTK_PIN_IES_SMT_SPEC(24240x470, 8),
 MTK_PIN_IES_SMT_SPEC(25250x470, 8),
 MTK_PIN_IES_SMT_SPEC(26260x470, 9),
 MTK_PIN_IES_SMT_SPEC(27270x470, 9),
 MTK_PIN_IES_SMT_SPEC(28280x470, 9),
 MTK_PIN_IES_SMT_SPEC(29290x470, 9),
 MTK_PIN_IES_SMT_SPEC(30300x470, 10),
 MTK_PIN_IES_SMT_SPEC(31310x470, 10),
 MTK_PIN_IES_SMT_SPEC(32320x470, 10),
 MTK_PIN_IES_SMT_SPEC(33330x470, 10),
 MTK_PIN_IES_SMT_SPEC(34340x470, 10),
 MTK_PIN_IES_SMT_SPEC(35350x470, 11),
 MTK_PIN_IES_SMT_SPEC(36360x470, 11),
 MTK_PIN_IES_SMT_SPEC(37370x470, 11),
 MTK_PIN_IES_SMT_SPEC(38380x470, 11),
 MTK_PIN_IES_SMT_SPEC(39390x470, 11),
 MTK_PIN_IES_SMT_SPEC(40400x470, 11),
 MTK_PIN_IES_SMT_SPEC(41410x470, 12),
 MTK_PIN_IES_SMT_SPEC(42420x470, 12),
 MTK_PIN_IES_SMT_SPEC(43430x470, 12),
 MTK_PIN_IES_SMT_SPEC(44440x470, 12),
 MTK_PIN_IES_SMT_SPEC(45450x470, 13),
 MTK_PIN_IES_SMT_SPEC(46460x470, 13),
 MTK_PIN_IES_SMT_SPEC(47470x470, 13),
 MTK_PIN_IES_SMT_SPEC(48480x470, 13),
 MTK_PIN_IES_SMT_SPEC(49490x470, 14),
 MTK_PIN_IES_SMT_SPEC(50500x470, 14),
 MTK_PIN_IES_SMT_SPEC(51510x470, 14),
 MTK_PIN_IES_SMT_SPEC(52520x470, 14),
 MTK_PIN_IES_SMT_SPEC(53530x470, 14),
 MTK_PIN_IES_SMT_SPEC(54540x470, 14),
 MTK_PIN_IES_SMT_SPEC(55550x470, 14),
 MTK_PIN_IES_SMT_SPEC(56560x470, 14),
 MTK_PIN_IES_SMT_SPEC(57570x470, 15),
 MTK_PIN_IES_SMT_SPEC(58580x470, 15),
 MTK_PIN_IES_SMT_SPEC(59590x470, 16),
 MTK_PIN_IES_SMT_SPEC(60600x470, 16),
 MTK_PIN_IES_SMT_SPEC(61610x470, 17),
 MTK_PIN_IES_SMT_SPEC(62620x470, 17),
 MTK_PIN_IES_SMT_SPEC(63630x470, 18),
 MTK_PIN_IES_SMT_SPEC(64640x470, 18),
 MTK_PIN_IES_SMT_SPEC(65650x470, 19),
 MTK_PIN_IES_SMT_SPEC(66660x470, 19),
 MTK_PIN_IES_SMT_SPEC(67670x470, 19),
 MTK_PIN_IES_SMT_SPEC(68680x470, 19),
 MTK_PIN_IES_SMT_SPEC(69690x470, 19),
 MTK_PIN_IES_SMT_SPEC(70700x470, 19),
 MTK_PIN_IES_SMT_SPEC(71710x470, 20),
 MTK_PIN_IES_SMT_SPEC(72720x470, 20),
 MTK_PIN_IES_SMT_SPEC(73730x470, 20),
 MTK_PIN_IES_SMT_SPEC(74740x470, 20),
 MTK_PIN_IES_SMT_SPEC(75750x470, 20),
 MTK_PIN_IES_SMT_SPEC(76760x470, 20),
 MTK_PIN_IES_SMT_SPEC(77770x470, 20),
 MTK_PIN_IES_SMT_SPEC(78780x470, 20),
 MTK_PIN_IES_SMT_SPEC(79790x470, 20),
 MTK_PIN_IES_SMT_SPEC(80800x470, 21),
 MTK_PIN_IES_SMT_SPEC(81810x470, 22),
 MTK_PIN_IES_SMT_SPEC(82820x470, 23),
 MTK_PIN_IES_SMT_SPEC(83830x470, 24),
 MTK_PIN_IES_SMT_SPEC(84840x470, 25),
 MTK_PIN_IES_SMT_SPEC(85850x470, 26),
 MTK_PIN_IES_SMT_SPEC(86860x470, 27),
 MTK_PIN_IES_SMT_SPEC(87870x470, 28),
 MTK_PIN_IES_SMT_SPEC(88880x470, 29),
 MTK_PIN_IES_SMT_SPEC(89890x470, 30),
 MTK_PIN_IES_SMT_SPEC(90900x470, 31),
 MTK_PIN_IES_SMT_SPEC(91910x480, 0),
 MTK_PIN_IES_SMT_SPEC(92920x480, 1),
 MTK_PIN_IES_SMT_SPEC(93930x480, 2),
 MTK_PIN_IES_SMT_SPEC(94940x480, 3),
 MTK_PIN_IES_SMT_SPEC(95950x480, 4),
 MTK_PIN_IES_SMT_SPEC(96960x480, 5),
 MTK_PIN_IES_SMT_SPEC(97970x480, 6),
 MTK_PIN_IES_SMT_SPEC(98980x480, 7),
 MTK_PIN_IES_SMT_SPEC(99990x480, 8),
 MTK_PIN_IES_SMT_SPEC(1001000x480, 9),
 MTK_PIN_IES_SMT_SPEC(1011010x480, 10),
 MTK_PIN_IES_SMT_SPEC(1021020x480, 11),
 MTK_PIN_IES_SMT_SPEC(1031030x480, 12),
 MTK_PIN_IES_SMT_SPEC(1041040x480, 13),
 MTK_PIN_IES_SMT_SPEC(1051050x480, 14),
 MTK_PIN_IES_SMT_SPEC(1061060x480, 14),
 MTK_PIN_IES_SMT_SPEC(1071070x480, 14),
 MTK_PIN_IES_SMT_SPEC(1081080x480, 14),
 MTK_PIN_IES_SMT_SPEC(1091090x480, 14),
 MTK_PIN_IES_SMT_SPEC(1101100x480, 15),
 MTK_PIN_IES_SMT_SPEC(1111110x480, 15),
 MTK_PIN_IES_SMT_SPEC(1121120x480, 15),
 MTK_PIN_IES_SMT_SPEC(1131130x480, 15),
 MTK_PIN_IES_SMT_SPEC(1141140x480, 16),
 MTK_PIN_IES_SMT_SPEC(1151150x480, 16),
 MTK_PIN_IES_SMT_SPEC(1161160x480, 16),
 MTK_PIN_IES_SMT_SPEC(1171170x480, 17),
 MTK_PIN_IES_SMT_SPEC(1181180x480, 17),
 MTK_PIN_IES_SMT_SPEC(1191190x480, 17),
 MTK_PIN_IES_SMT_SPEC(1201200x480, 18),
 MTK_PIN_IES_SMT_SPEC(1211210x480, 18),
 MTK_PIN_IES_SMT_SPEC(1221220x480, 18),
 MTK_PIN_IES_SMT_SPEC(1231230x480, 19),
 MTK_PIN_IES_SMT_SPEC(1241240x480, 19),
 MTK_PIN_IES_SMT_SPEC(1251250x480, 19),
 MTK_PIN_IES_SMT_SPEC(1261260x480, 20),
 MTK_PIN_IES_SMT_SPEC(1271270x480, 20),
 MTK_PIN_IES_SMT_SPEC(1281280x480, 20),
 MTK_PIN_IES_SMT_SPEC(1291290x480, 21),
 MTK_PIN_IES_SMT_SPEC(1301300x480, 21),
 MTK_PIN_IES_SMT_SPEC(1311310x480, 21),
 MTK_PIN_IES_SMT_SPEC(1321320x480, 21),
 MTK_PIN_IES_SMT_SPEC(1331330x480, 21),
 MTK_PIN_IES_SMT_SPEC(1341340x480, 21),
 MTK_PIN_IES_SMT_SPEC(1351350x480, 21),
 MTK_PIN_IES_SMT_SPEC(1361360x480, 22),
 MTK_PIN_IES_SMT_SPEC(1371370x480, 22),
 MTK_PIN_IES_SMT_SPEC(1381380x480, 22),
 MTK_PIN_IES_SMT_SPEC(1391390x480, 22),
 MTK_PIN_IES_SMT_SPEC(1401400x480, 22),
 MTK_PIN_IES_SMT_SPEC(1411410x480, 22),
 MTK_PIN_IES_SMT_SPEC(1421420x480, 22),
 MTK_PIN_IES_SMT_SPEC(1431430x480, 22),
 MTK_PIN_IES_SMT_SPEC(1441440x480, 22),
};

static int mt8365_set_clr_mode(struct regmap *regmap,
  unsigned int bit, unsigned int reg_pullen, unsigned int reg_pullsel,
  bool enable, bool isup)
{
 int ret;

 ret = regmap_update_bits(regmap, reg_pullen, BIT(bit), enable << bit);
 if (ret)
  return -EINVAL;

 ret = regmap_update_bits(regmap, reg_pullsel, BIT(bit), isup << bit);
 if (ret)
  return -EINVAL;

 return 0;
}

static const struct mtk_pinctrl_devdata mt8365_pinctrl_data = {
 .pins = mtk_pins_mt8365,
 .npins = ARRAY_SIZE(mtk_pins_mt8365),
 .grp_desc = mt8365_drv_grp,
 .n_grp_cls = ARRAY_SIZE(mt8365_drv_grp),
 .pin_drv_grp = mt8365_pin_drv,
 .n_pin_drv_grps = ARRAY_SIZE(mt8365_pin_drv),
 .spec_ies = mt8365_ies_set,
 .n_spec_ies = ARRAY_SIZE(mt8365_ies_set),
 .spec_smt = mt8365_smt_set,
 .n_spec_smt = ARRAY_SIZE(mt8365_smt_set),
 .spec_pupd = mt8365_spec_pupd,
 .n_spec_pupd = ARRAY_SIZE(mt8365_spec_pupd),
 .spec_pull_set = mtk_pctrl_spec_pull_set_samereg,
 .spec_ies_smt_set = mtk_pconf_spec_set_ies_smt_range,
 .mt8365_set_clr_mode = mt8365_set_clr_mode,
 .dir_offset = 0x0140,
 .dout_offset = 0x00A0,
 .din_offset = 0x0000,
 .pinmux_offset = 0x01E0,
 .ies_offset = 0x0410,
 .smt_offset = 0x0470,
 .pullen_offset = 0x0860,
 .pullsel_offset = 0x0900,
 .drv_offset = 0x0710,
 .type1_start = 145,
 .type1_end = 145,
 .port_shf = 4,
 .port_mask = 0x1f,
 .port_align = 4,
 .mode_mask = 0x1f,
 .mode_per_reg = 10,
 .mode_shf = 5,
 .eint_hw = {
  .port_mask = 7,
  .ports     = 5,
  .ap_num = 160,
  .db_cnt = 160,
  .db_time   = debounce_time_mt6765,
 },
};

static const struct of_device_id mt8365_pctrl_match[] = {
 { .compatible = "mediatek,mt8365-pinctrl", .data = &mt8365_pinctrl_data },
 {}
};

static struct platform_driver mtk_pinctrl_driver = {
 .probe = mtk_pctrl_common_probe,
 .driver = {
  .name = "mediatek-mt8365-pinctrl",
  .of_match_table = mt8365_pctrl_match,
  .pm = pm_sleep_ptr(&mtk_eint_pm_ops),
 },
};

static int __init mtk_pinctrl_init(void)
{
 return platform_driver_register(&mtk_pinctrl_driver);
}
arch_initcall(mtk_pinctrl_init);

MODULE_DESCRIPTION("MediaTek MT8365 Pinctrl Driver");
MODULE_AUTHOR("Zhiyong Tao <zhiyong.tao@mediatek.com>");

Messung V0.5 in Prozent
C=96 H=100 G=97

¤ Dauer der Verarbeitung: 0.12 Sekunden  (vorverarbeitet am  2026-06-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.