1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * GPIO driver for AMD 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (c) 2014,2015 Ken Xue <Ken.Xue@amd.com> 6*4882a593Smuzhiyun * Jeff Wu <Jeff.Wu@amd.com> 7*4882a593Smuzhiyun */ 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #ifndef _PINCTRL_AMD_H 10*4882a593Smuzhiyun #define _PINCTRL_AMD_H 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #define AMD_GPIO_PINS_PER_BANK 64 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #define AMD_GPIO_PINS_BANK0 63 15*4882a593Smuzhiyun #define AMD_GPIO_PINS_BANK1 64 16*4882a593Smuzhiyun #define AMD_GPIO_PINS_BANK2 56 17*4882a593Smuzhiyun #define AMD_GPIO_PINS_BANK3 32 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define WAKE_INT_MASTER_REG 0xfc 20*4882a593Smuzhiyun #define EOI_MASK (1 << 29) 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun #define WAKE_INT_STATUS_REG0 0x2f8 23*4882a593Smuzhiyun #define WAKE_INT_STATUS_REG1 0x2fc 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun #define DB_TMR_OUT_OFF 0 26*4882a593Smuzhiyun #define DB_TMR_OUT_UNIT_OFF 4 27*4882a593Smuzhiyun #define DB_CNTRL_OFF 5 28*4882a593Smuzhiyun #define DB_TMR_LARGE_OFF 7 29*4882a593Smuzhiyun #define LEVEL_TRIG_OFF 8 30*4882a593Smuzhiyun #define ACTIVE_LEVEL_OFF 9 31*4882a593Smuzhiyun #define INTERRUPT_ENABLE_OFF 11 32*4882a593Smuzhiyun #define INTERRUPT_MASK_OFF 12 33*4882a593Smuzhiyun #define WAKE_CNTRL_OFF_S0I3 13 34*4882a593Smuzhiyun #define WAKE_CNTRL_OFF_S3 14 35*4882a593Smuzhiyun #define WAKE_CNTRL_OFF_S4 15 36*4882a593Smuzhiyun #define PIN_STS_OFF 16 37*4882a593Smuzhiyun #define DRV_STRENGTH_SEL_OFF 17 38*4882a593Smuzhiyun #define PULL_UP_SEL_OFF 19 39*4882a593Smuzhiyun #define PULL_UP_ENABLE_OFF 20 40*4882a593Smuzhiyun #define PULL_DOWN_ENABLE_OFF 21 41*4882a593Smuzhiyun #define OUTPUT_VALUE_OFF 22 42*4882a593Smuzhiyun #define OUTPUT_ENABLE_OFF 23 43*4882a593Smuzhiyun #define SW_CNTRL_IN_OFF 24 44*4882a593Smuzhiyun #define SW_CNTRL_EN_OFF 25 45*4882a593Smuzhiyun #define INTERRUPT_STS_OFF 28 46*4882a593Smuzhiyun #define WAKE_STS_OFF 29 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun #define DB_TMR_OUT_MASK 0xFUL 49*4882a593Smuzhiyun #define DB_CNTRl_MASK 0x3UL 50*4882a593Smuzhiyun #define ACTIVE_LEVEL_MASK 0x3UL 51*4882a593Smuzhiyun #define DRV_STRENGTH_SEL_MASK 0x3UL 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun #define ACTIVE_LEVEL_HIGH 0x0UL 54*4882a593Smuzhiyun #define ACTIVE_LEVEL_LOW 0x1UL 55*4882a593Smuzhiyun #define ACTIVE_LEVEL_BOTH 0x2UL 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun #define DB_TYPE_NO_DEBOUNCE 0x0UL 58*4882a593Smuzhiyun #define DB_TYPE_PRESERVE_LOW_GLITCH 0x1UL 59*4882a593Smuzhiyun #define DB_TYPE_PRESERVE_HIGH_GLITCH 0x2UL 60*4882a593Smuzhiyun #define DB_TYPE_REMOVE_GLITCH 0x3UL 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun #define EDGE_TRAGGER 0x0UL 63*4882a593Smuzhiyun #define LEVEL_TRIGGER 0x1UL 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #define ACTIVE_HIGH 0x0UL 66*4882a593Smuzhiyun #define ACTIVE_LOW 0x1UL 67*4882a593Smuzhiyun #define BOTH_EADGE 0x2UL 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun #define ENABLE_INTERRUPT 0x1UL 70*4882a593Smuzhiyun #define DISABLE_INTERRUPT 0x0UL 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun #define ENABLE_INTERRUPT_MASK 0x0UL 73*4882a593Smuzhiyun #define DISABLE_INTERRUPT_MASK 0x1UL 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun #define CLR_INTR_STAT 0x1UL 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun struct amd_pingroup { 78*4882a593Smuzhiyun const char *name; 79*4882a593Smuzhiyun const unsigned *pins; 80*4882a593Smuzhiyun unsigned npins; 81*4882a593Smuzhiyun }; 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun struct amd_function { 84*4882a593Smuzhiyun const char *name; 85*4882a593Smuzhiyun const char * const *groups; 86*4882a593Smuzhiyun unsigned ngroups; 87*4882a593Smuzhiyun }; 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun struct amd_gpio { 90*4882a593Smuzhiyun raw_spinlock_t lock; 91*4882a593Smuzhiyun void __iomem *base; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun const struct amd_pingroup *groups; 94*4882a593Smuzhiyun u32 ngroups; 95*4882a593Smuzhiyun struct pinctrl_dev *pctrl; 96*4882a593Smuzhiyun struct gpio_chip gc; 97*4882a593Smuzhiyun unsigned int hwbank_num; 98*4882a593Smuzhiyun struct resource *res; 99*4882a593Smuzhiyun struct platform_device *pdev; 100*4882a593Smuzhiyun u32 *saved_regs; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun /* KERNCZ configuration*/ 104*4882a593Smuzhiyun static const struct pinctrl_pin_desc kerncz_pins[] = { 105*4882a593Smuzhiyun PINCTRL_PIN(0, "GPIO_0"), 106*4882a593Smuzhiyun PINCTRL_PIN(1, "GPIO_1"), 107*4882a593Smuzhiyun PINCTRL_PIN(2, "GPIO_2"), 108*4882a593Smuzhiyun PINCTRL_PIN(3, "GPIO_3"), 109*4882a593Smuzhiyun PINCTRL_PIN(4, "GPIO_4"), 110*4882a593Smuzhiyun PINCTRL_PIN(5, "GPIO_5"), 111*4882a593Smuzhiyun PINCTRL_PIN(6, "GPIO_6"), 112*4882a593Smuzhiyun PINCTRL_PIN(7, "GPIO_7"), 113*4882a593Smuzhiyun PINCTRL_PIN(8, "GPIO_8"), 114*4882a593Smuzhiyun PINCTRL_PIN(9, "GPIO_9"), 115*4882a593Smuzhiyun PINCTRL_PIN(10, "GPIO_10"), 116*4882a593Smuzhiyun PINCTRL_PIN(11, "GPIO_11"), 117*4882a593Smuzhiyun PINCTRL_PIN(12, "GPIO_12"), 118*4882a593Smuzhiyun PINCTRL_PIN(13, "GPIO_13"), 119*4882a593Smuzhiyun PINCTRL_PIN(14, "GPIO_14"), 120*4882a593Smuzhiyun PINCTRL_PIN(15, "GPIO_15"), 121*4882a593Smuzhiyun PINCTRL_PIN(16, "GPIO_16"), 122*4882a593Smuzhiyun PINCTRL_PIN(17, "GPIO_17"), 123*4882a593Smuzhiyun PINCTRL_PIN(18, "GPIO_18"), 124*4882a593Smuzhiyun PINCTRL_PIN(19, "GPIO_19"), 125*4882a593Smuzhiyun PINCTRL_PIN(20, "GPIO_20"), 126*4882a593Smuzhiyun PINCTRL_PIN(21, "GPIO_21"), 127*4882a593Smuzhiyun PINCTRL_PIN(22, "GPIO_22"), 128*4882a593Smuzhiyun PINCTRL_PIN(23, "GPIO_23"), 129*4882a593Smuzhiyun PINCTRL_PIN(24, "GPIO_24"), 130*4882a593Smuzhiyun PINCTRL_PIN(25, "GPIO_25"), 131*4882a593Smuzhiyun PINCTRL_PIN(26, "GPIO_26"), 132*4882a593Smuzhiyun PINCTRL_PIN(27, "GPIO_27"), 133*4882a593Smuzhiyun PINCTRL_PIN(28, "GPIO_28"), 134*4882a593Smuzhiyun PINCTRL_PIN(29, "GPIO_29"), 135*4882a593Smuzhiyun PINCTRL_PIN(30, "GPIO_30"), 136*4882a593Smuzhiyun PINCTRL_PIN(31, "GPIO_31"), 137*4882a593Smuzhiyun PINCTRL_PIN(32, "GPIO_32"), 138*4882a593Smuzhiyun PINCTRL_PIN(33, "GPIO_33"), 139*4882a593Smuzhiyun PINCTRL_PIN(34, "GPIO_34"), 140*4882a593Smuzhiyun PINCTRL_PIN(35, "GPIO_35"), 141*4882a593Smuzhiyun PINCTRL_PIN(36, "GPIO_36"), 142*4882a593Smuzhiyun PINCTRL_PIN(37, "GPIO_37"), 143*4882a593Smuzhiyun PINCTRL_PIN(38, "GPIO_38"), 144*4882a593Smuzhiyun PINCTRL_PIN(39, "GPIO_39"), 145*4882a593Smuzhiyun PINCTRL_PIN(40, "GPIO_40"), 146*4882a593Smuzhiyun PINCTRL_PIN(41, "GPIO_41"), 147*4882a593Smuzhiyun PINCTRL_PIN(42, "GPIO_42"), 148*4882a593Smuzhiyun PINCTRL_PIN(43, "GPIO_43"), 149*4882a593Smuzhiyun PINCTRL_PIN(44, "GPIO_44"), 150*4882a593Smuzhiyun PINCTRL_PIN(45, "GPIO_45"), 151*4882a593Smuzhiyun PINCTRL_PIN(46, "GPIO_46"), 152*4882a593Smuzhiyun PINCTRL_PIN(47, "GPIO_47"), 153*4882a593Smuzhiyun PINCTRL_PIN(48, "GPIO_48"), 154*4882a593Smuzhiyun PINCTRL_PIN(49, "GPIO_49"), 155*4882a593Smuzhiyun PINCTRL_PIN(50, "GPIO_50"), 156*4882a593Smuzhiyun PINCTRL_PIN(51, "GPIO_51"), 157*4882a593Smuzhiyun PINCTRL_PIN(52, "GPIO_52"), 158*4882a593Smuzhiyun PINCTRL_PIN(53, "GPIO_53"), 159*4882a593Smuzhiyun PINCTRL_PIN(54, "GPIO_54"), 160*4882a593Smuzhiyun PINCTRL_PIN(55, "GPIO_55"), 161*4882a593Smuzhiyun PINCTRL_PIN(56, "GPIO_56"), 162*4882a593Smuzhiyun PINCTRL_PIN(57, "GPIO_57"), 163*4882a593Smuzhiyun PINCTRL_PIN(58, "GPIO_58"), 164*4882a593Smuzhiyun PINCTRL_PIN(59, "GPIO_59"), 165*4882a593Smuzhiyun PINCTRL_PIN(60, "GPIO_60"), 166*4882a593Smuzhiyun PINCTRL_PIN(61, "GPIO_61"), 167*4882a593Smuzhiyun PINCTRL_PIN(62, "GPIO_62"), 168*4882a593Smuzhiyun PINCTRL_PIN(64, "GPIO_64"), 169*4882a593Smuzhiyun PINCTRL_PIN(65, "GPIO_65"), 170*4882a593Smuzhiyun PINCTRL_PIN(66, "GPIO_66"), 171*4882a593Smuzhiyun PINCTRL_PIN(67, "GPIO_67"), 172*4882a593Smuzhiyun PINCTRL_PIN(68, "GPIO_68"), 173*4882a593Smuzhiyun PINCTRL_PIN(69, "GPIO_69"), 174*4882a593Smuzhiyun PINCTRL_PIN(70, "GPIO_70"), 175*4882a593Smuzhiyun PINCTRL_PIN(71, "GPIO_71"), 176*4882a593Smuzhiyun PINCTRL_PIN(72, "GPIO_72"), 177*4882a593Smuzhiyun PINCTRL_PIN(73, "GPIO_73"), 178*4882a593Smuzhiyun PINCTRL_PIN(74, "GPIO_74"), 179*4882a593Smuzhiyun PINCTRL_PIN(75, "GPIO_75"), 180*4882a593Smuzhiyun PINCTRL_PIN(76, "GPIO_76"), 181*4882a593Smuzhiyun PINCTRL_PIN(77, "GPIO_77"), 182*4882a593Smuzhiyun PINCTRL_PIN(78, "GPIO_78"), 183*4882a593Smuzhiyun PINCTRL_PIN(79, "GPIO_79"), 184*4882a593Smuzhiyun PINCTRL_PIN(80, "GPIO_80"), 185*4882a593Smuzhiyun PINCTRL_PIN(81, "GPIO_81"), 186*4882a593Smuzhiyun PINCTRL_PIN(82, "GPIO_82"), 187*4882a593Smuzhiyun PINCTRL_PIN(83, "GPIO_83"), 188*4882a593Smuzhiyun PINCTRL_PIN(84, "GPIO_84"), 189*4882a593Smuzhiyun PINCTRL_PIN(85, "GPIO_85"), 190*4882a593Smuzhiyun PINCTRL_PIN(86, "GPIO_86"), 191*4882a593Smuzhiyun PINCTRL_PIN(87, "GPIO_87"), 192*4882a593Smuzhiyun PINCTRL_PIN(88, "GPIO_88"), 193*4882a593Smuzhiyun PINCTRL_PIN(89, "GPIO_89"), 194*4882a593Smuzhiyun PINCTRL_PIN(90, "GPIO_90"), 195*4882a593Smuzhiyun PINCTRL_PIN(91, "GPIO_91"), 196*4882a593Smuzhiyun PINCTRL_PIN(92, "GPIO_92"), 197*4882a593Smuzhiyun PINCTRL_PIN(93, "GPIO_93"), 198*4882a593Smuzhiyun PINCTRL_PIN(94, "GPIO_94"), 199*4882a593Smuzhiyun PINCTRL_PIN(95, "GPIO_95"), 200*4882a593Smuzhiyun PINCTRL_PIN(96, "GPIO_96"), 201*4882a593Smuzhiyun PINCTRL_PIN(97, "GPIO_97"), 202*4882a593Smuzhiyun PINCTRL_PIN(98, "GPIO_98"), 203*4882a593Smuzhiyun PINCTRL_PIN(99, "GPIO_99"), 204*4882a593Smuzhiyun PINCTRL_PIN(100, "GPIO_100"), 205*4882a593Smuzhiyun PINCTRL_PIN(101, "GPIO_101"), 206*4882a593Smuzhiyun PINCTRL_PIN(102, "GPIO_102"), 207*4882a593Smuzhiyun PINCTRL_PIN(103, "GPIO_103"), 208*4882a593Smuzhiyun PINCTRL_PIN(104, "GPIO_104"), 209*4882a593Smuzhiyun PINCTRL_PIN(105, "GPIO_105"), 210*4882a593Smuzhiyun PINCTRL_PIN(106, "GPIO_106"), 211*4882a593Smuzhiyun PINCTRL_PIN(107, "GPIO_107"), 212*4882a593Smuzhiyun PINCTRL_PIN(108, "GPIO_108"), 213*4882a593Smuzhiyun PINCTRL_PIN(109, "GPIO_109"), 214*4882a593Smuzhiyun PINCTRL_PIN(110, "GPIO_110"), 215*4882a593Smuzhiyun PINCTRL_PIN(111, "GPIO_111"), 216*4882a593Smuzhiyun PINCTRL_PIN(112, "GPIO_112"), 217*4882a593Smuzhiyun PINCTRL_PIN(113, "GPIO_113"), 218*4882a593Smuzhiyun PINCTRL_PIN(114, "GPIO_114"), 219*4882a593Smuzhiyun PINCTRL_PIN(115, "GPIO_115"), 220*4882a593Smuzhiyun PINCTRL_PIN(116, "GPIO_116"), 221*4882a593Smuzhiyun PINCTRL_PIN(117, "GPIO_117"), 222*4882a593Smuzhiyun PINCTRL_PIN(118, "GPIO_118"), 223*4882a593Smuzhiyun PINCTRL_PIN(119, "GPIO_119"), 224*4882a593Smuzhiyun PINCTRL_PIN(120, "GPIO_120"), 225*4882a593Smuzhiyun PINCTRL_PIN(121, "GPIO_121"), 226*4882a593Smuzhiyun PINCTRL_PIN(122, "GPIO_122"), 227*4882a593Smuzhiyun PINCTRL_PIN(123, "GPIO_123"), 228*4882a593Smuzhiyun PINCTRL_PIN(124, "GPIO_124"), 229*4882a593Smuzhiyun PINCTRL_PIN(125, "GPIO_125"), 230*4882a593Smuzhiyun PINCTRL_PIN(126, "GPIO_126"), 231*4882a593Smuzhiyun PINCTRL_PIN(127, "GPIO_127"), 232*4882a593Smuzhiyun PINCTRL_PIN(128, "GPIO_128"), 233*4882a593Smuzhiyun PINCTRL_PIN(129, "GPIO_129"), 234*4882a593Smuzhiyun PINCTRL_PIN(130, "GPIO_130"), 235*4882a593Smuzhiyun PINCTRL_PIN(131, "GPIO_131"), 236*4882a593Smuzhiyun PINCTRL_PIN(132, "GPIO_132"), 237*4882a593Smuzhiyun PINCTRL_PIN(133, "GPIO_133"), 238*4882a593Smuzhiyun PINCTRL_PIN(134, "GPIO_134"), 239*4882a593Smuzhiyun PINCTRL_PIN(135, "GPIO_135"), 240*4882a593Smuzhiyun PINCTRL_PIN(136, "GPIO_136"), 241*4882a593Smuzhiyun PINCTRL_PIN(137, "GPIO_137"), 242*4882a593Smuzhiyun PINCTRL_PIN(138, "GPIO_138"), 243*4882a593Smuzhiyun PINCTRL_PIN(139, "GPIO_139"), 244*4882a593Smuzhiyun PINCTRL_PIN(140, "GPIO_140"), 245*4882a593Smuzhiyun PINCTRL_PIN(141, "GPIO_141"), 246*4882a593Smuzhiyun PINCTRL_PIN(142, "GPIO_142"), 247*4882a593Smuzhiyun PINCTRL_PIN(143, "GPIO_143"), 248*4882a593Smuzhiyun PINCTRL_PIN(144, "GPIO_144"), 249*4882a593Smuzhiyun PINCTRL_PIN(145, "GPIO_145"), 250*4882a593Smuzhiyun PINCTRL_PIN(146, "GPIO_146"), 251*4882a593Smuzhiyun PINCTRL_PIN(147, "GPIO_147"), 252*4882a593Smuzhiyun PINCTRL_PIN(148, "GPIO_148"), 253*4882a593Smuzhiyun PINCTRL_PIN(149, "GPIO_149"), 254*4882a593Smuzhiyun PINCTRL_PIN(150, "GPIO_150"), 255*4882a593Smuzhiyun PINCTRL_PIN(151, "GPIO_151"), 256*4882a593Smuzhiyun PINCTRL_PIN(152, "GPIO_152"), 257*4882a593Smuzhiyun PINCTRL_PIN(153, "GPIO_153"), 258*4882a593Smuzhiyun PINCTRL_PIN(154, "GPIO_154"), 259*4882a593Smuzhiyun PINCTRL_PIN(155, "GPIO_155"), 260*4882a593Smuzhiyun PINCTRL_PIN(156, "GPIO_156"), 261*4882a593Smuzhiyun PINCTRL_PIN(157, "GPIO_157"), 262*4882a593Smuzhiyun PINCTRL_PIN(158, "GPIO_158"), 263*4882a593Smuzhiyun PINCTRL_PIN(159, "GPIO_159"), 264*4882a593Smuzhiyun PINCTRL_PIN(160, "GPIO_160"), 265*4882a593Smuzhiyun PINCTRL_PIN(161, "GPIO_161"), 266*4882a593Smuzhiyun PINCTRL_PIN(162, "GPIO_162"), 267*4882a593Smuzhiyun PINCTRL_PIN(163, "GPIO_163"), 268*4882a593Smuzhiyun PINCTRL_PIN(164, "GPIO_164"), 269*4882a593Smuzhiyun PINCTRL_PIN(165, "GPIO_165"), 270*4882a593Smuzhiyun PINCTRL_PIN(166, "GPIO_166"), 271*4882a593Smuzhiyun PINCTRL_PIN(167, "GPIO_167"), 272*4882a593Smuzhiyun PINCTRL_PIN(168, "GPIO_168"), 273*4882a593Smuzhiyun PINCTRL_PIN(169, "GPIO_169"), 274*4882a593Smuzhiyun PINCTRL_PIN(170, "GPIO_170"), 275*4882a593Smuzhiyun PINCTRL_PIN(171, "GPIO_171"), 276*4882a593Smuzhiyun PINCTRL_PIN(172, "GPIO_172"), 277*4882a593Smuzhiyun PINCTRL_PIN(173, "GPIO_173"), 278*4882a593Smuzhiyun PINCTRL_PIN(174, "GPIO_174"), 279*4882a593Smuzhiyun PINCTRL_PIN(175, "GPIO_175"), 280*4882a593Smuzhiyun PINCTRL_PIN(176, "GPIO_176"), 281*4882a593Smuzhiyun PINCTRL_PIN(177, "GPIO_177"), 282*4882a593Smuzhiyun PINCTRL_PIN(178, "GPIO_178"), 283*4882a593Smuzhiyun PINCTRL_PIN(179, "GPIO_179"), 284*4882a593Smuzhiyun PINCTRL_PIN(180, "GPIO_180"), 285*4882a593Smuzhiyun PINCTRL_PIN(181, "GPIO_181"), 286*4882a593Smuzhiyun PINCTRL_PIN(182, "GPIO_182"), 287*4882a593Smuzhiyun PINCTRL_PIN(183, "GPIO_183"), 288*4882a593Smuzhiyun }; 289*4882a593Smuzhiyun 290*4882a593Smuzhiyun static const unsigned i2c0_pins[] = {145, 146}; 291*4882a593Smuzhiyun static const unsigned i2c1_pins[] = {147, 148}; 292*4882a593Smuzhiyun static const unsigned i2c2_pins[] = {113, 114}; 293*4882a593Smuzhiyun static const unsigned i2c3_pins[] = {19, 20}; 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun static const unsigned uart0_pins[] = {135, 136, 137, 138, 139}; 296*4882a593Smuzhiyun static const unsigned uart1_pins[] = {140, 141, 142, 143, 144}; 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun static const struct amd_pingroup kerncz_groups[] = { 299*4882a593Smuzhiyun { 300*4882a593Smuzhiyun .name = "i2c0", 301*4882a593Smuzhiyun .pins = i2c0_pins, 302*4882a593Smuzhiyun .npins = 2, 303*4882a593Smuzhiyun }, 304*4882a593Smuzhiyun { 305*4882a593Smuzhiyun .name = "i2c1", 306*4882a593Smuzhiyun .pins = i2c1_pins, 307*4882a593Smuzhiyun .npins = 2, 308*4882a593Smuzhiyun }, 309*4882a593Smuzhiyun { 310*4882a593Smuzhiyun .name = "i2c2", 311*4882a593Smuzhiyun .pins = i2c2_pins, 312*4882a593Smuzhiyun .npins = 2, 313*4882a593Smuzhiyun }, 314*4882a593Smuzhiyun { 315*4882a593Smuzhiyun .name = "i2c3", 316*4882a593Smuzhiyun .pins = i2c3_pins, 317*4882a593Smuzhiyun .npins = 2, 318*4882a593Smuzhiyun }, 319*4882a593Smuzhiyun { 320*4882a593Smuzhiyun .name = "uart0", 321*4882a593Smuzhiyun .pins = uart0_pins, 322*4882a593Smuzhiyun .npins = 5, 323*4882a593Smuzhiyun }, 324*4882a593Smuzhiyun { 325*4882a593Smuzhiyun .name = "uart1", 326*4882a593Smuzhiyun .pins = uart1_pins, 327*4882a593Smuzhiyun .npins = 5, 328*4882a593Smuzhiyun }, 329*4882a593Smuzhiyun }; 330*4882a593Smuzhiyun 331*4882a593Smuzhiyun #endif 332