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 26 kB image not shown  

Quelle  pinctrl-mt6795.c

  Sprache: C
 

// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2022 Collabora Ltd.
 * Author: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
 */


#include "pinctrl-mtk-mt6795.h"
#include "pinctrl-paris.h"

#define PIN_FIELD15(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits) \
 PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit, \
         _x_bits, 150)

#define PIN_FIELD16(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits) \
 PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit, \
         _x_bits, 160)

#define PINS_FIELD16(_s_pin, _e_pin, _s_addr, _x_addrs, _s_bit, _x_bits)\
 PIN_FIELD_CALC(_s_pin, _e_pin, 0, _s_addr, _x_addrs, _s_bit, \
         _x_bits, 161)

static const struct mtk_pin_field_calc mt6795_pin_dir_range[] = {
 PIN_FIELD16(01960x0, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6795_pin_pullen_range[] = {
 PIN_FIELD16(01960x100, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6795_pin_pullsel_range[] = {
 PIN_FIELD16(01960x200, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6795_pin_do_range[] = {
 PIN_FIELD16(01960x400, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6795_pin_di_range[] = {
 PIN_FIELD16(01960x500, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6795_pin_mode_range[] = {
 PIN_FIELD15(01960x600, 0x10, 03),
};

static const struct mtk_pin_field_calc mt6795_pin_ies_range[] = {
 PINS_FIELD16(040x900, 0x10, 11),
 PINS_FIELD16(590x900, 0x10, 21),
 PINS_FIELD16(10150x900, 0x10, 101),
 PINS_FIELD16(16160x900, 0x10, 21),
 PINS_FIELD16(17190x910, 0x10, 31),
 PINS_FIELD16(20220x910, 0x10, 41),
 PINS_FIELD16(23260xce0, 0x10, 141),
 PINS_FIELD16(27270xcc0, 0x10, 141),
 PINS_FIELD16(28280xcd0, 0x10, 141),
 PINS_FIELD16(29320x900, 0x10, 31),
 PINS_FIELD16(33330x900, 0x10, 41),
 PINS_FIELD16(34360x900, 0x10, 51),
 PINS_FIELD16(37380x900, 0x10, 61),
 PINS_FIELD16(39390x900, 0x10, 71),
 PINS_FIELD16(40400x900, 0x10, 81),
 PINS_FIELD16(41420x900, 0x10, 91),
 PINS_FIELD16(43460x900, 0x10, 111),
 PINS_FIELD16(47610x920, 0x10, 31),
 PINS_FIELD16(62660x920, 0x10, 41),
 PINS_FIELD16(67670x920, 0x10, 31),
 PINS_FIELD16(68720x920, 0x10, 51),
 PINS_FIELD16(73770x920, 0x10, 61),
 PINS_FIELD16(78910x920, 0x10, 71),
 PINS_FIELD16(92920x900, 0x10, 131),
 PINS_FIELD16(93950x900, 0x10, 141),
 PINS_FIELD16(96990x900, 0x10, 151),
 PINS_FIELD16(1001030xca0, 0x10, 141),
 PINS_FIELD16(1041040xc80, 0x10, 141),
 PINS_FIELD16(1051050xc90, 0x10, 141),
 PINS_FIELD16(1061070x910, 0x10, 01),
 PINS_FIELD16(1081120x910, 0x10, 11),
 PINS_FIELD16(1131160x910, 0x10, 21),
 PINS_FIELD16(1171180x910, 0x10, 51),
 PINS_FIELD16(1191240x910, 0x10, 61),
 PINS_FIELD16(1251260x910, 0x10, 71),
 PINS_FIELD16(1291290x910, 0x10, 81),
 PINS_FIELD16(1301310x910, 0x10, 91),
 PINS_FIELD16(1321350x910, 0x10, 81),
 PINS_FIELD16(1361370x910, 0x10, 71),
 PINS_FIELD16(1541610xc20, 0x10, 141),
 PINS_FIELD16(1621620xc10, 0x10, 141),
 PINS_FIELD16(1631630xc00, 0x10, 141),
 PINS_FIELD16(1641640xd10, 0x10, 141),
 PINS_FIELD16(1651650xd00, 0x10, 141),
 PINS_FIELD16(1661690x910, 0x10, 141),
 PINS_FIELD16(1761790x910, 0x10, 151),
 PINS_FIELD16(1801800x920, 0x10, 01),
 PINS_FIELD16(1811840x920, 0x10, 11),
 PINS_FIELD16(1851910x920, 0x10, 21),
 PINS_FIELD16(1921920x920, 0x10, 81),
 PINS_FIELD16(1931940x920, 0x10, 91),
 PINS_FIELD16(1951960x920, 0x10, 81),
};

static const struct mtk_pin_field_calc mt6795_pin_smt_range[] = {
 PINS_FIELD16(040x930, 0x10, 11),
 PINS_FIELD16(590x930, 0x10, 21),
 PINS_FIELD16(10150x930, 0x10, 101),
 PINS_FIELD16(16160x930, 0x10, 21),
 PINS_FIELD16(17190x940, 0x10, 31),
 PINS_FIELD16(20220x940, 0x10, 41),
 PINS_FIELD16(23260xce0, 0x10, 131),
 PINS_FIELD16(27270xcc0, 0x10, 131),
 PINS_FIELD16(28280xcd0, 0x10, 131),
 PINS_FIELD16(29320x930, 0x10, 31),
 PINS_FIELD16(33330x930, 0x10, 41),
 PINS_FIELD16(34360x930, 0x10, 51),
 PINS_FIELD16(37380x930, 0x10, 61),
 PINS_FIELD16(39390x930, 0x10, 71),
 PINS_FIELD16(40400x930, 0x10, 81),
 PINS_FIELD16(41420x930, 0x10, 91),
 PINS_FIELD16(43460x930, 0x10, 111),
 PINS_FIELD16(47610x950, 0x10, 31),
 PINS_FIELD16(62660x950, 0x10, 41),
 PINS_FIELD16(67670x950, 0x10, 31),
 PINS_FIELD16(68720x950, 0x10, 51),
 PINS_FIELD16(73770x950, 0x10, 61),
 PINS_FIELD16(78910x950, 0x10, 71),
 PINS_FIELD16(92920x930, 0x10, 131),
 PINS_FIELD16(93950x930, 0x10, 141),
 PINS_FIELD16(96990x930, 0x10, 151),
 PINS_FIELD16(1001030xca0, 0x10, 131),
 PINS_FIELD16(1041040xc80, 0x10, 131),
 PINS_FIELD16(1051050xc90, 0x10, 131),
 PINS_FIELD16(1061070x940, 0x10, 01),
 PINS_FIELD16(1081120x940, 0x10, 11),
 PINS_FIELD16(1131160x940, 0x10, 21),
 PINS_FIELD16(1171180x940, 0x10, 51),
 PINS_FIELD16(1191240x940, 0x10, 61),
 PINS_FIELD16(1251260x940, 0x10, 71),
 PINS_FIELD16(1291290x940, 0x10, 81),
 PINS_FIELD16(1301310x940, 0x10, 91),
 PINS_FIELD16(1321350x940, 0x10, 81),
 PINS_FIELD16(1361370x940, 0x10, 71),
 PINS_FIELD16(1541610xc20, 0x10, 131),
 PINS_FIELD16(1621620xc10, 0x10, 131),
 PINS_FIELD16(1631630xc00, 0x10, 131),
 PINS_FIELD16(1641640xd10, 0x10, 131),
 PINS_FIELD16(1651650xd00, 0x10, 131),
 PINS_FIELD16(1661690x940, 0x10, 141),
 PINS_FIELD16(1761790x940, 0x10, 151),
 PINS_FIELD16(1801800x950, 0x10, 01),
 PINS_FIELD16(1811840x950, 0x10, 11),
 PINS_FIELD16(1851910x950, 0x10, 21),
 PINS_FIELD16(1921920x950, 0x10, 81),
 PINS_FIELD16(1931940x950, 0x10, 91),
 PINS_FIELD16(1951960x950, 0x10, 81),
};


static const struct mtk_pin_field_calc mt6795_pin_pupd_range[] = {
 /* KROW */
 PIN_FIELD16(1191190xe00, 0x10, 21), /* KROW0 */
 PIN_FIELD16(1201200xe00, 0x10, 61), /* KROW1 */
 PIN_FIELD16(1211210xe00, 0x10, 101), /* KROW2 */
 PIN_FIELD16(1221220xe10, 0x10, 21), /* KCOL0 */
 PIN_FIELD16(1231230xe10, 0x10, 61), /* KCOL1 */
 PIN_FIELD16(1241240xe10, 0x10, 101), /* KCOL2 */

 /* DPI */
 PIN_FIELD16(1381380xd50, 0x10, 21), /* CK */
 PIN_FIELD16(1391390xd60, 0x10, 11), /* DE */
 PIN_FIELD16(1401400xd70, 0x10, 11), /* data0 */
 PIN_FIELD16(1411410xd70, 0x10, 31), /* data1 */
 PIN_FIELD16(1421420xd70, 0x10, 51), /* data2 */
 PIN_FIELD16(1431430xd70, 0x10, 71), /* data3 */
 PIN_FIELD16(1441440xd50, 0x10, 51), /* data4 */
 PIN_FIELD16(1451450xd50, 0x10, 71), /* data5 */
 PIN_FIELD16(1461460xd60, 0x10, 71), /* data6 */
 PIN_FIELD16(1471470xed0, 0x10, 61), /* data7 */
 PIN_FIELD16(1481480xed0, 0x10, 81), /* data8 */
 PIN_FIELD16(1491490xed0, 0x10, 101), /* data9 */
 PIN_FIELD16(1501500xed0, 0x10, 121), /* data10 */
 PIN_FIELD16(1511510xed0, 0x10, 141), /* data11 */
 PIN_FIELD16(1521520xd60, 0x10, 31), /* hsync */
 PIN_FIELD16(1531530xd60, 0x10, 51), /* vsync */

 /* MSDC0 */
 PIN_FIELD16(1541540xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1551550xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1561560xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1571570xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1581580xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1591590xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1601600xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1611610xc20, 0x10, 21), /* DATA 0-7 */
 PIN_FIELD16(1621620xc10, 0x10, 21), /* CMD */
 PIN_FIELD16(1631630xc00, 0x10, 21), /* CLK */
 PIN_FIELD16(1641640xd10, 0x10, 21), /* DS  */
 PIN_FIELD16(1651650xd00, 0x10, 21), /* RST */

 /* MSDC1 */
 PIN_FIELD16(1701700xc50, 0x10, 21), /* CMD */
 PIN_FIELD16(1711710xd20, 0x10, 21), /* DAT0 */
 PIN_FIELD16(1721720xd20, 0x10, 61), /* DAT1 */
 PIN_FIELD16(1731730xd20, 0x10, 101), /* DAT2 */
 PIN_FIELD16(1741740xd20, 0x10, 141), /* DAT3 */
 PIN_FIELD16(1751750xc40, 0x10, 21), /* CLK */

 /* MSDC2 */
 PIN_FIELD16(1001000xd30, 0x10, 21), /* DAT0 */
 PIN_FIELD16(1011010xd30, 0x10, 61), /* DAT1 */
 PIN_FIELD16(1021020xd30, 0x10, 101), /* DAT2 */
 PIN_FIELD16(1031030xd30, 0x10, 141), /* DAT3 */
 PIN_FIELD16(1041040xc80, 0x10, 21), /* CLK */
 PIN_FIELD16(1051050xc90, 0x10, 21), /* CMD */

 /* MSDC3 */
 PIN_FIELD16(23230xd40, 0x10, 21),  /* DAT0 */
 PIN_FIELD16(24240xd40, 0x10, 65),  /* DAT1 */
 PIN_FIELD16(25250xd40, 0x10, 109), /* DAT2 */
 PIN_FIELD16(26260xd40, 0x10, 1413), /* DAT3 */
 PIN_FIELD16(27270xcc0, 0x10, 21),  /* CLK */
 PIN_FIELD16(28280xcd0, 0x10, 21)  /* CMD */
};

static const struct mtk_pin_field_calc mt6795_pin_r0_range[] = {
 PIN_FIELD16(23230xd40, 0x10, 01),
 PIN_FIELD16(24240xd40, 0x10, 41),
 PIN_FIELD16(25250xd40, 0x10, 81),
 PIN_FIELD16(26260xd40, 0x10, 121),
 PIN_FIELD16(27270xcc0, 0x10, 01),
 PIN_FIELD16(28280xcd0, 0x10, 01),
 PIN_FIELD16(1001000xd30, 0x10, 01),
 PIN_FIELD16(1011010xd30, 0x10, 41),
 PIN_FIELD16(1021020xd30, 0x10, 81),
 PIN_FIELD16(1031030xd30, 0x10, 121),
 PIN_FIELD16(1041040xc80, 0x10, 01),
 PIN_FIELD16(1051050xc90, 0x10, 01),
 PIN_FIELD16(1191190xe00, 0x10, 01),
 PIN_FIELD16(1201200xe00, 0x10, 41),
 PIN_FIELD16(1211210xe00, 0x10, 81),
 PIN_FIELD16(1221220xe10, 0x10, 01),
 PIN_FIELD16(1231230xe10, 0x10, 41),
 PIN_FIELD16(1241240xe10, 0x10, 81),
 PIN_FIELD16(1381380xd50, 0x10, 01),
 PIN_FIELD16(1391390xd60, 0x10, 01),
 PIN_FIELD16(1401400xd70, 0x10, 01),
 PIN_FIELD16(1411410xd70, 0x10, 11),
 PIN_FIELD16(1421420xd70, 0x10, 31),
 PIN_FIELD16(1431430xd70, 0x10, 51),
 PIN_FIELD16(1441440xd50, 0x10, 31),
 PIN_FIELD16(1451450xd50, 0x10, 51),
 PIN_FIELD16(1461460xd60, 0x10, 51),
 PIN_FIELD16(1471470xed0, 0x10, 41),
 PIN_FIELD16(1481480xed0, 0x10, 61),
 PIN_FIELD16(1491490xed0, 0x10, 81),
 PIN_FIELD16(1501500xed0, 0x10, 101),
 PIN_FIELD16(1511510xed0, 0x10, 121),
 PIN_FIELD16(1521520xd60, 0x10, 11),
 PIN_FIELD16(1531530xd60, 0x10, 31),
 PIN_FIELD16(1541550xc20, 0x10, 01),
 PIN_FIELD16(1551560xc20, 0x10, 01),
 PIN_FIELD16(1561570xc20, 0x10, 01),
 PIN_FIELD16(1571580xc20, 0x10, 01),
 PIN_FIELD16(1581590xc20, 0x10, 01),
 PIN_FIELD16(1591600xc20, 0x10, 01),
 PIN_FIELD16(1601610xc20, 0x10, 01),
 PIN_FIELD16(1611610xc20, 0x10, 01),
 PIN_FIELD16(1621620xc10, 0x10, 01),
 PIN_FIELD16(1631630xc00, 0x10, 01),
 PIN_FIELD16(1641640xd10, 0x10, 01),
 PIN_FIELD16(1651650xd00, 0x10, 01),
 PIN_FIELD16(1701700xc50, 0x10, 01),
 PIN_FIELD16(1711710xd20, 0x10, 01),
 PIN_FIELD16(1721720xd20, 0x10, 41),
 PIN_FIELD16(1731730xd20, 0x10, 81),
 PIN_FIELD16(1741740xd20, 0x10, 121),
 PIN_FIELD16(1751750xc40, 0x10, 01),
};

static const struct mtk_pin_field_calc mt6795_pin_r1_range[] = {
 PIN_FIELD16(23230xd40, 0x10, 11),
 PIN_FIELD16(24240xd40, 0x10, 51),
 PIN_FIELD16(25250xd40, 0x10, 91),
 PIN_FIELD16(26260xd40, 0x10, 131),
 PIN_FIELD16(27270xcc0, 0x10, 11),
 PIN_FIELD16(28280xcd0, 0x10, 11),
 PIN_FIELD16(1001000xd30, 0x10, 11),
 PIN_FIELD16(1011010xd30, 0x10, 51),
 PIN_FIELD16(1021020xd30, 0x10, 91),
 PIN_FIELD16(1031030xd30, 0x10, 131),
 PIN_FIELD16(1041040xc80, 0x10, 11),
 PIN_FIELD16(1051050xc90, 0x10, 11),
 PIN_FIELD16(1191190xe00, 0x10, 11),
 PIN_FIELD16(1201200xe00, 0x10, 51),
 PIN_FIELD16(1211210xe00, 0x10, 91),
 PIN_FIELD16(1221220xe10, 0x10, 11),
 PIN_FIELD16(1231230xe10, 0x10, 51),
 PIN_FIELD16(1241240xe10, 0x10, 91),
 PIN_FIELD16(1381380xd50, 0x10, 11),
 PIN_FIELD16(1391390xd60, 0x10, 01),
 PIN_FIELD16(1401400xd70, 0x10, 01),
 PIN_FIELD16(1411410xd70, 0x10, 21),
 PIN_FIELD16(1421420xd70, 0x10, 41),
 PIN_FIELD16(1431430xd70, 0x10, 61),
 PIN_FIELD16(1441440xd50, 0x10, 41),
 PIN_FIELD16(1451450xd50, 0x10, 61),
 PIN_FIELD16(1461460xd60, 0x10, 61),
 PIN_FIELD16(1471470xed0, 0x10, 51),
 PIN_FIELD16(1481480xed0, 0x10, 71),
 PIN_FIELD16(1491490xed0, 0x10, 91),
 PIN_FIELD16(1501500xed0, 0x10, 111),
 PIN_FIELD16(1511510xed0, 0x10, 131),
 PIN_FIELD16(1521520xd60, 0x10, 21),
 PIN_FIELD16(1531530xd60, 0x10, 41),
 PIN_FIELD16(1541550xc20, 0x10, 11),
 PIN_FIELD16(1551560xc20, 0x10, 11),
 PIN_FIELD16(1561570xc20, 0x10, 11),
 PIN_FIELD16(1571580xc20, 0x10, 11),
 PIN_FIELD16(1581590xc20, 0x10, 11),
 PIN_FIELD16(1591600xc20, 0x10, 11),
 PIN_FIELD16(1601610xc20, 0x10, 11),
 PIN_FIELD16(1611610xc20, 0x10, 11),
 PIN_FIELD16(1621620xc10, 0x10, 11),
 PIN_FIELD16(1631630xc00, 0x10, 11),
 PIN_FIELD16(1641640xd10, 0x10, 11),
 PIN_FIELD16(1651650xd00, 0x10, 11),
 PIN_FIELD16(1701700xc50, 0x10, 11),
 PIN_FIELD16(1711710xd20, 0x10, 11),
 PIN_FIELD16(1721720xd20, 0x10, 51),
 PIN_FIELD16(1731730xd20, 0x10, 91),
 PIN_FIELD16(1741740xd20, 0x10, 131),
 PIN_FIELD16(1751750xc40, 0x10, 11),
};

static const struct mtk_pin_field_calc mt6795_pin_drv_range[] = {
 PINS_FIELD16(040xb30, 0x10, 132),
 PINS_FIELD16(590xb30, 0x10, 12),
 PINS_FIELD16(10150xb30, 0x10, 52),
 PIN_FIELD16(16160xb30, 0x10, 12),
 PINS_FIELD16(17190xb70, 0x10, 52),
 PINS_FIELD16(20220xb70, 0x10, 92),
 PINS_FIELD16(23260xce0, 0x10, 82),
 PIN_FIELD16(27270xcc0, 0x10, 82),
 PIN_FIELD16(28280xcd0, 0x10, 82),
 PINS_FIELD16(29320xb80, 0x10, 132),
 PIN_FIELD16(33330xb10, 0x10, 132),
 PINS_FIELD16(34360xb10, 0x10, 92),
 PINS_FIELD16(37380xb10, 0x10, 52),
 PIN_FIELD16(39390xb20, 0x10, 12),
 PIN_FIELD16(40400xb20, 0x10, 52),
 PINS_FIELD16(41420xb20, 0x10, 92),
 PINS_FIELD16(47610xb00, 0x10, 92),
 PINS_FIELD16(62660xb70, 0x10, 12),
 PINS_FIELD16(67670xb00, 0x10, 92),
 PINS_FIELD16(68720xb60, 0x10, 132),
 PINS_FIELD16(73770xb40, 0x10, 132),
 PIN_FIELD16(78780xb00, 0x10, 123),
 PINS_FIELD16(79910xb00, 0x10, 132),
 PIN_FIELD16(92920xb60, 0x10, 52),
 PINS_FIELD16(93950xb60, 0x10, 12),
 PINS_FIELD16(96990xb80, 0x10, 92),
 PINS_FIELD16(1001030xca0, 0x10, 82),
 PIN_FIELD16(1041040xc80, 0x10, 82),
 PIN_FIELD16(1051050xc90, 0x10, 82),
 PINS_FIELD16(1061070xb50, 0x10, 92),
 PINS_FIELD16(1081120xb50, 0x10, 12),
 PINS_FIELD16(1131160xb80, 0x10, 52),
 PINS_FIELD16(1171180xb90, 0x10, 12),
 PINS_FIELD16(1191240xb50, 0x10, 52),
 PIN_FIELD16(1271270xb70, 0x10, 52),
 PIN_FIELD16(1281280xb70, 0x10, 92),
 PIN_FIELD16(1291290xb40, 0x10, 92),
 PINS_FIELD16(1301310xb40, 0x10, 132),
 PINS_FIELD16(1321350xb40, 0x10, 92),
 PIN_FIELD16(1381380xb50, 0x10, 82),
 PIN_FIELD16(1391390xb60, 0x10, 82),
 PINS_FIELD16(1401510xb70, 0x10, 82),
 PINS_FIELD16(1521530xb60, 0x10, 82),
 PINS_FIELD16(1531530xb60, 0x10, 82),
 PINS_FIELD16(1541610xc20, 0x10, 82),
 PIN_FIELD16(1621620xc10, 0x10, 82),
 PIN_FIELD16(1631630xc00, 0x10, 82),
 PIN_FIELD16(1641640xd10, 0x10, 82),
 PIN_FIELD16(1651650xd00, 0x10, 82),
 PINS_FIELD16(1661690xb80, 0x10, 12),
 PINS_FIELD16(1701730xc60, 0x10, 82),
 PIN_FIELD16(1741740xc40, 0x10, 82),
 PIN_FIELD16(1751750xc50, 0x10, 82),
 PINS_FIELD16(1761790xb70, 0x10, 132),
 PIN_FIELD16(1801800xb00, 0x10, 52),
 PINS_FIELD16(1811840xb00, 0x10, 12),
 PINS_FIELD16(1851910xb60, 0x10, 92),
 PIN_FIELD16(1921920xb40, 0x10, 12),
 PINS_FIELD16(1931940xb40, 0x10, 52),
 PINS_FIELD16(1951960xb40, 0x10, 12),
};

static const struct mtk_pin_field_calc mt6795_pin_sr_range[] = {
 PINS_FIELD16(040xb30, 0x10, 151),
 PINS_FIELD16(590xb30, 0x10, 31),
 PINS_FIELD16(10150xb30, 0x10, 71),
 PIN_FIELD16(16160xb30, 0x10, 51),
 PINS_FIELD16(23260xce0, 0x10, 121),
 PIN_FIELD16(27270xcc0, 0x10, 121),
 PIN_FIELD16(28280xcd0, 0x10, 121),
 PINS_FIELD16(29320xb80, 0x10, 151),
 PIN_FIELD16(33330xb10, 0x10, 151),
 PINS_FIELD16(34360xb10, 0x10, 111),
 PINS_FIELD16(37380xb10, 0x10, 71),
 PIN_FIELD16(39390xb20, 0x10, 31),
 PIN_FIELD16(40400xb20, 0x10, 71),
 PINS_FIELD16(41420xb20, 0x10, 111),
 PINS_FIELD16(47610xb00, 0x10, 111),
 PINS_FIELD16(62660xb70, 0x10, 31),
 PINS_FIELD16(67670xb00, 0x10, 111),
 PINS_FIELD16(68720xb60, 0x10, 151),
 PINS_FIELD16(73770xb40, 0x10, 151),
 PIN_FIELD16(78780xb00, 0x10, 153),
 PINS_FIELD16(79910xb00, 0x10, 151),
 PIN_FIELD16(92920xb60, 0x10, 71),
 PINS_FIELD16(93950xb60, 0x10, 31),
 PINS_FIELD16(96990xb80, 0x10, 111),
 PINS_FIELD16(1001030xca0, 0x10, 121),
 PIN_FIELD16(1041040xc80, 0x10, 121),
 PIN_FIELD16(1051050xc90, 0x10, 121),
 PINS_FIELD16(1061070xb50, 0x10, 111),
 PINS_FIELD16(1081120xb50, 0x10, 31),
 PINS_FIELD16(1131160xb80, 0x10, 71),
 PINS_FIELD16(1171180xb90, 0x10, 31),
 PINS_FIELD16(1191240xb50, 0x10, 71),
 PIN_FIELD16(1271270xb70, 0x10, 71),
 PIN_FIELD16(1281280xb70, 0x10, 111),
 PIN_FIELD16(1291290xb40, 0x10, 111),
 PINS_FIELD16(1301310xb40, 0x10, 151),
 PINS_FIELD16(1321350xb40, 0x10, 111),
 PIN_FIELD16(1381380xb50, 0x10, 121),
 PIN_FIELD16(1391390xb60, 0x10, 121),
 PINS_FIELD16(1401510xb70, 0x10, 121),
 PINS_FIELD16(1521530xb60, 0x10, 121),
 PINS_FIELD16(1531530xb60, 0x10, 121),
 PINS_FIELD16(1541610xc20, 0x10, 121),
 PIN_FIELD16(1621620xc10, 0x10, 121),
 PIN_FIELD16(1631630xc00, 0x10, 121),
 PIN_FIELD16(1641640xd10, 0x10, 121),
 PIN_FIELD16(1651650xd00, 0x10, 121),
 PINS_FIELD16(1661690xb80, 0x10, 31),
 PINS_FIELD16(1701730xc60, 0x10, 121),
 PIN_FIELD16(1741740xc40, 0x10, 121),
 PIN_FIELD16(1751750xc50, 0x10, 121),
 PINS_FIELD16(1761790xb70, 0x10, 151),
 PIN_FIELD16(1801800xb00, 0x10, 71),
 PINS_FIELD16(1811840xb00, 0x10, 31),
 PINS_FIELD16(1851910xb60, 0x10, 111),
 PIN_FIELD16(1921920xb40, 0x10, 31),
 PINS_FIELD16(1931940xb40, 0x10, 71),
 PINS_FIELD16(1951960xb40, 0x10, 31),
};

static const struct mtk_pin_reg_calc mt6795_reg_cals[PINCTRL_PIN_REG_MAX] = {
 [PINCTRL_PIN_REG_MODE] = MTK_RANGE(mt6795_pin_mode_range),
 [PINCTRL_PIN_REG_DIR] = MTK_RANGE(mt6795_pin_dir_range),
 [PINCTRL_PIN_REG_DI] = MTK_RANGE(mt6795_pin_di_range),
 [PINCTRL_PIN_REG_DO] = MTK_RANGE(mt6795_pin_do_range),
 [PINCTRL_PIN_REG_SR] = MTK_RANGE(mt6795_pin_sr_range),
 [PINCTRL_PIN_REG_SMT] = MTK_RANGE(mt6795_pin_smt_range),
 [PINCTRL_PIN_REG_DRV] = MTK_RANGE(mt6795_pin_drv_range),
 [PINCTRL_PIN_REG_PUPD] = MTK_RANGE(mt6795_pin_pupd_range),
 [PINCTRL_PIN_REG_R0] = MTK_RANGE(mt6795_pin_r0_range),
 [PINCTRL_PIN_REG_R1] = MTK_RANGE(mt6795_pin_r1_range),
 [PINCTRL_PIN_REG_IES] = MTK_RANGE(mt6795_pin_ies_range),
 [PINCTRL_PIN_REG_PULLEN] = MTK_RANGE(mt6795_pin_pullen_range),
 [PINCTRL_PIN_REG_PULLSEL] = MTK_RANGE(mt6795_pin_pullsel_range),
};

static const struct mtk_eint_hw mt6795_eint_hw = {
 .port_mask = 7,
 .ports     = 7,
 .ap_num    = 224,
 .db_cnt    = 32,
 .db_time   = debounce_time_mt6795,
};

static const unsigned int mt6795_pull_type[] = {
 MTK_PULL_PULLSEL_TYPE,/*0*/ MTK_PULL_PULLSEL_TYPE,/*1*/
 MTK_PULL_PULLSEL_TYPE,/*2*/ MTK_PULL_PULLSEL_TYPE,/*3*/
 MTK_PULL_PULLSEL_TYPE,/*4*/ MTK_PULL_PULLSEL_TYPE,/*5*/
 MTK_PULL_PULLSEL_TYPE,/*6*/ MTK_PULL_PULLSEL_TYPE,/*7*/
 MTK_PULL_PULLSEL_TYPE,/*8*/ MTK_PULL_PULLSEL_TYPE,/*9*/
 MTK_PULL_PULLSEL_TYPE,/*10*/ MTK_PULL_PULLSEL_TYPE,/*11*/
 MTK_PULL_PULLSEL_TYPE,/*12*/ MTK_PULL_PULLSEL_TYPE,/*13*/
 MTK_PULL_PULLSEL_TYPE,/*14*/ MTK_PULL_PULLSEL_TYPE,/*15*/
 MTK_PULL_PULLSEL_TYPE,/*16*/ MTK_PULL_PULLSEL_TYPE,/*17*/
 MTK_PULL_PULLSEL_TYPE,/*18*/ MTK_PULL_PULLSEL_TYPE,/*19*/
 MTK_PULL_PULLSEL_TYPE,/*20*/ MTK_PULL_PULLSEL_TYPE,/*21*/
 MTK_PULL_PULLSEL_TYPE,/*22*/ MTK_PULL_PUPD_R1R0_TYPE,/*23*/
 MTK_PULL_PUPD_R1R0_TYPE,/*24*/ MTK_PULL_PUPD_R1R0_TYPE,/*25*/
 MTK_PULL_PUPD_R1R0_TYPE,/*26*/ MTK_PULL_PUPD_R1R0_TYPE,/*27*/
 MTK_PULL_PUPD_R1R0_TYPE,/*28*/ MTK_PULL_PULLSEL_TYPE,/*29*/
 MTK_PULL_PULLSEL_TYPE,/*30*/ MTK_PULL_PULLSEL_TYPE,/*31*/
 MTK_PULL_PULLSEL_TYPE,/*32*/ MTK_PULL_PULLSEL_TYPE,/*33*/
 MTK_PULL_PULLSEL_TYPE,/*34*/ MTK_PULL_PULLSEL_TYPE,/*35*/
 MTK_PULL_PULLSEL_TYPE,/*36*/ MTK_PULL_PULLSEL_TYPE,/*37*/
 MTK_PULL_PULLSEL_TYPE,/*38*/ MTK_PULL_PULLSEL_TYPE,/*39*/
 MTK_PULL_PULLSEL_TYPE,/*40*/ MTK_PULL_PULLSEL_TYPE,/*41*/
 MTK_PULL_PULLSEL_TYPE,/*42*/ MTK_PULL_PULLSEL_TYPE,/*43*/
 MTK_PULL_PULLSEL_TYPE,/*44*/ MTK_PULL_PULLSEL_TYPE,/*45*/
 MTK_PULL_PULLSEL_TYPE,/*46*/ MTK_PULL_PULLSEL_TYPE,/*47*/
 MTK_PULL_PULLSEL_TYPE,/*48*/ MTK_PULL_PULLSEL_TYPE,/*49*/
 MTK_PULL_PULLSEL_TYPE,/*50*/ MTK_PULL_PULLSEL_TYPE,/*51*/
 MTK_PULL_PULLSEL_TYPE,/*52*/ MTK_PULL_PULLSEL_TYPE,/*53*/
 MTK_PULL_PULLSEL_TYPE,/*54*/ MTK_PULL_PULLSEL_TYPE,/*55*/
 MTK_PULL_PULLSEL_TYPE,/*56*/ MTK_PULL_PULLSEL_TYPE,/*57*/
 MTK_PULL_PULLSEL_TYPE,/*58*/ MTK_PULL_PULLSEL_TYPE,/*59*/
 MTK_PULL_PULLSEL_TYPE,/*60*/ MTK_PULL_PULLSEL_TYPE,/*61*/
 MTK_PULL_PULLSEL_TYPE,/*62*/ MTK_PULL_PULLSEL_TYPE,/*63*/
 MTK_PULL_PULLSEL_TYPE,/*64*/ MTK_PULL_PULLSEL_TYPE,/*65*/
 MTK_PULL_PULLSEL_TYPE,/*66*/ MTK_PULL_PUPD_R1R0_TYPE,/*67*/
 MTK_PULL_PUPD_R1R0_TYPE,/*68*/ MTK_PULL_PUPD_R1R0_TYPE,/*69*/
 MTK_PULL_PUPD_R1R0_TYPE,/*70*/ MTK_PULL_PUPD_R1R0_TYPE,/*71*/
 MTK_PULL_PUPD_R1R0_TYPE,/*72*/ MTK_PULL_PUPD_R1R0_TYPE,/*73*/
 MTK_PULL_PUPD_R1R0_TYPE,/*74*/ MTK_PULL_PUPD_R1R0_TYPE,/*75*/
 MTK_PULL_PUPD_R1R0_TYPE,/*76*/ MTK_PULL_PUPD_R1R0_TYPE,/*77*/
 MTK_PULL_PUPD_R1R0_TYPE,/*78*/ MTK_PULL_PUPD_R1R0_TYPE,/*79*/
 MTK_PULL_PUPD_R1R0_TYPE,/*80*/ MTK_PULL_PUPD_R1R0_TYPE,/*81*/
 MTK_PULL_PUPD_R1R0_TYPE,/*82*/ MTK_PULL_PULLSEL_TYPE,/*83*/
 MTK_PULL_PUPD_R1R0_TYPE,/*84*/ MTK_PULL_PUPD_R1R0_TYPE,/*85*/
 MTK_PULL_PUPD_R1R0_TYPE,/*86*/ MTK_PULL_PUPD_R1R0_TYPE,/*87*/
 MTK_PULL_PUPD_R1R0_TYPE,/*88*/ MTK_PULL_PUPD_R1R0_TYPE,/*89*/
 MTK_PULL_PULLSEL_TYPE,/*90*/ MTK_PULL_PULLSEL_TYPE,/*91*/
 MTK_PULL_PULLSEL_TYPE,/*92*/ MTK_PULL_PULLSEL_TYPE,/*93*/
 MTK_PULL_PULLSEL_TYPE,/*94*/ MTK_PULL_PULLSEL_TYPE,/*95*/
 MTK_PULL_PULLSEL_TYPE,/*96*/ MTK_PULL_PULLSEL_TYPE,/*97*/
 MTK_PULL_PULLSEL_TYPE,/*98*/ MTK_PULL_PULLSEL_TYPE,/*99*/
 MTK_PULL_PUPD_R1R0_TYPE,/*100*/ MTK_PULL_PUPD_R1R0_TYPE,/*101*/
 MTK_PULL_PUPD_R1R0_TYPE,/*102*/ MTK_PULL_PUPD_R1R0_TYPE,/*103*/
 MTK_PULL_PUPD_R1R0_TYPE,/*104*/ MTK_PULL_PUPD_R1R0_TYPE,/*105*/
 MTK_PULL_PULLSEL_TYPE,/*106*/ MTK_PULL_PULLSEL_TYPE,/*107*/
 MTK_PULL_PULLSEL_TYPE,/*108*/ MTK_PULL_PULLSEL_TYPE,/*109*/
 MTK_PULL_PULLSEL_TYPE,/*110*/ MTK_PULL_PULLSEL_TYPE,/*111*/
 MTK_PULL_PULLSEL_TYPE,/*112*/ MTK_PULL_PULLSEL_TYPE,/*113*/
 MTK_PULL_PULLSEL_TYPE,/*114*/ MTK_PULL_PULLSEL_TYPE,/*115*/
 MTK_PULL_PULLSEL_TYPE,/*116*/ MTK_PULL_PULLSEL_TYPE,/*117*/
 MTK_PULL_PULLSEL_TYPE,/*118*/ MTK_PULL_PUPD_R1R0_TYPE,/*119*/
 MTK_PULL_PUPD_R1R0_TYPE,/*120*/ MTK_PULL_PUPD_R1R0_TYPE,/*121*/
 MTK_PULL_PUPD_R1R0_TYPE,/*122*/ MTK_PULL_PUPD_R1R0_TYPE,/*123*/
 MTK_PULL_PUPD_R1R0_TYPE,/*124*/ MTK_PULL_PULLSEL_TYPE,/*125*/
 MTK_PULL_PULLSEL_TYPE,/*126*/ MTK_PULL_PULLSEL_TYPE,/*127*/
 MTK_PULL_PULLSEL_TYPE,/*128*/ MTK_PULL_PULLSEL_TYPE,/*129*/
 MTK_PULL_PULLSEL_TYPE,/*130*/ MTK_PULL_PULLSEL_TYPE,/*131*/
 MTK_PULL_PULLSEL_TYPE,/*132*/ MTK_PULL_PULLSEL_TYPE,/*133*/
 MTK_PULL_PULLSEL_TYPE,/*134*/ MTK_PULL_PULLSEL_TYPE,/*135*/
 MTK_PULL_PULLSEL_TYPE,/*136*/ MTK_PULL_PULLSEL_TYPE,/*137*/
 MTK_PULL_PUPD_R1R0_TYPE,/*138*/ MTK_PULL_PUPD_R1R0_TYPE,/*139*/
 MTK_PULL_PUPD_R1R0_TYPE,/*140*/ MTK_PULL_PUPD_R1R0_TYPE,/*141*/
 MTK_PULL_PUPD_R1R0_TYPE,/*142*/ MTK_PULL_PUPD_R1R0_TYPE,/*143*/
 MTK_PULL_PUPD_R1R0_TYPE,/*144*/ MTK_PULL_PUPD_R1R0_TYPE,/*145*/
 MTK_PULL_PUPD_R1R0_TYPE,/*146*/ MTK_PULL_PUPD_R1R0_TYPE,/*147*/
 MTK_PULL_PUPD_R1R0_TYPE,/*148*/ MTK_PULL_PUPD_R1R0_TYPE,/*149*/
 MTK_PULL_PUPD_R1R0_TYPE,/*150*/ MTK_PULL_PUPD_R1R0_TYPE,/*151*/
 MTK_PULL_PUPD_R1R0_TYPE,/*152*/ MTK_PULL_PUPD_R1R0_TYPE,/*153*/
 MTK_PULL_PUPD_R1R0_TYPE,/*154*/ MTK_PULL_PUPD_R1R0_TYPE,/*155*/
 MTK_PULL_PUPD_R1R0_TYPE,/*156*/ MTK_PULL_PUPD_R1R0_TYPE,/*157*/
 MTK_PULL_PUPD_R1R0_TYPE,/*158*/ MTK_PULL_PUPD_R1R0_TYPE,/*159*/
 MTK_PULL_PUPD_R1R0_TYPE,/*160*/ MTK_PULL_PUPD_R1R0_TYPE,/*161*/
 MTK_PULL_PUPD_R1R0_TYPE,/*162*/ MTK_PULL_PUPD_R1R0_TYPE,/*163*/
 MTK_PULL_PUPD_R1R0_TYPE,/*164*/ MTK_PULL_PUPD_R1R0_TYPE,/*165*/
 MTK_PULL_PULLSEL_TYPE,/*166*/ MTK_PULL_PULLSEL_TYPE,/*167*/
 MTK_PULL_PULLSEL_TYPE,/*168*/ MTK_PULL_PULLSEL_TYPE,/*169*/
 MTK_PULL_PUPD_R1R0_TYPE,/*170*/ MTK_PULL_PUPD_R1R0_TYPE,/*171*/
 MTK_PULL_PUPD_R1R0_TYPE,/*172*/ MTK_PULL_PUPD_R1R0_TYPE,/*173*/
 MTK_PULL_PUPD_R1R0_TYPE,/*174*/ MTK_PULL_PUPD_R1R0_TYPE,/*175*/
 MTK_PULL_PULLSEL_TYPE,/*176*/ MTK_PULL_PULLSEL_TYPE,/*177*/
 MTK_PULL_PULLSEL_TYPE,/*178*/ MTK_PULL_PULLSEL_TYPE,/*179*/
 MTK_PULL_PULLSEL_TYPE,/*180*/ MTK_PULL_PULLSEL_TYPE,/*181*/
 MTK_PULL_PULLSEL_TYPE,/*182*/ MTK_PULL_PULLSEL_TYPE,/*183*/
 MTK_PULL_PULLSEL_TYPE,/*184*/ MTK_PULL_PULLSEL_TYPE,/*185*/
 MTK_PULL_PULLSEL_TYPE,/*186*/ MTK_PULL_PULLSEL_TYPE,/*187*/
 MTK_PULL_PULLSEL_TYPE,/*188*/ MTK_PULL_PULLSEL_TYPE,/*189*/
 MTK_PULL_PULLSEL_TYPE,/*190*/ MTK_PULL_PULLSEL_TYPE,/*191*/
 MTK_PULL_PULLSEL_TYPE,/*192*/ MTK_PULL_PULLSEL_TYPE,/*193*/
 MTK_PULL_PULLSEL_TYPE,/*194*/ MTK_PULL_PULLSEL_TYPE,/*195*/
 MTK_PULL_PULLSEL_TYPE,/*196*/
};

static const struct mtk_pin_soc mt6795_data = {
 .reg_cal = mt6795_reg_cals,
 .pins = mtk_pins_mt6795,
 .npins = ARRAY_SIZE(mtk_pins_mt6795),
 .ngrps = ARRAY_SIZE(mtk_pins_mt6795),
 .nfuncs = 8,
 .eint_hw = &mt6795_eint_hw,
 .gpio_m = 0,
 .base_names = mtk_default_register_base_names,
 .nbase_names = ARRAY_SIZE(mtk_default_register_base_names),
 .pull_type = mt6795_pull_type,
 .bias_disable_set = mtk_pinconf_bias_disable_set_rev1,
 .bias_disable_get = mtk_pinconf_bias_disable_get_rev1,
 .bias_set = mtk_pinconf_bias_set_rev1,
 .bias_get = mtk_pinconf_bias_get_rev1,
 .bias_set_combo = mtk_pinconf_bias_set_combo,
 .bias_get_combo = mtk_pinconf_bias_get_combo,
 .drive_set = mtk_pinconf_drive_set_rev1,
 .drive_get = mtk_pinconf_drive_get_rev1,
 .adv_pull_get = mtk_pinconf_adv_pull_get,
 .adv_pull_set = mtk_pinconf_adv_pull_set,
};

static const struct of_device_id mt6795_pctrl_match[] = {
 { .compatible = "mediatek,mt6795-pinctrl", .data = &mt6795_data },
 { }
};

static struct platform_driver mt6795_pinctrl_driver = {
 .driver = {
  .name = "mt6795-pinctrl",
  .of_match_table = mt6795_pctrl_match,
  .pm = pm_sleep_ptr(&mtk_paris_pinctrl_pm_ops),
 },
 .probe = mtk_paris_pinctrl_probe,
};

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

Messung V0.5 in Prozent
C=92 H=99 G=95

¤ Dauer der Verarbeitung: 0.13 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.