1*c4f6f9c0SGeorgi Djakov /* 2*c4f6f9c0SGeorgi Djakov * Copyright (c) 2014, The Linux Foundation. All rights reserved. 3*c4f6f9c0SGeorgi Djakov * 4*c4f6f9c0SGeorgi Djakov * This program is free software; you can redistribute it and/or modify 5*c4f6f9c0SGeorgi Djakov * it under the terms of the GNU General Public License version 2 and 6*c4f6f9c0SGeorgi Djakov * only version 2 as published by the Free Software Foundation. 7*c4f6f9c0SGeorgi Djakov * 8*c4f6f9c0SGeorgi Djakov * This program is distributed in the hope that it will be useful, 9*c4f6f9c0SGeorgi Djakov * but WITHOUT ANY WARRANTY; without even the implied warranty of 10*c4f6f9c0SGeorgi Djakov * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11*c4f6f9c0SGeorgi Djakov * GNU General Public License for more details. 12*c4f6f9c0SGeorgi Djakov * 13*c4f6f9c0SGeorgi Djakov */ 14*c4f6f9c0SGeorgi Djakov 15*c4f6f9c0SGeorgi Djakov #include <linux/module.h> 16*c4f6f9c0SGeorgi Djakov #include <linux/of.h> 17*c4f6f9c0SGeorgi Djakov #include <linux/platform_device.h> 18*c4f6f9c0SGeorgi Djakov #include <linux/pinctrl/pinctrl.h> 19*c4f6f9c0SGeorgi Djakov 20*c4f6f9c0SGeorgi Djakov #include "pinctrl-msm.h" 21*c4f6f9c0SGeorgi Djakov 22*c4f6f9c0SGeorgi Djakov static const struct pinctrl_pin_desc apq8084_pins[] = { 23*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(0, "GPIO_0"), 24*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(1, "GPIO_1"), 25*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(2, "GPIO_2"), 26*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(3, "GPIO_3"), 27*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(4, "GPIO_4"), 28*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(5, "GPIO_5"), 29*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(6, "GPIO_6"), 30*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(7, "GPIO_7"), 31*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(8, "GPIO_8"), 32*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(9, "GPIO_9"), 33*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(10, "GPIO_10"), 34*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(11, "GPIO_11"), 35*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(12, "GPIO_12"), 36*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(13, "GPIO_13"), 37*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(14, "GPIO_14"), 38*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(15, "GPIO_15"), 39*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(16, "GPIO_16"), 40*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(17, "GPIO_17"), 41*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(18, "GPIO_18"), 42*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(19, "GPIO_19"), 43*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(20, "GPIO_20"), 44*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(21, "GPIO_21"), 45*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(22, "GPIO_22"), 46*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(23, "GPIO_23"), 47*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(24, "GPIO_24"), 48*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(25, "GPIO_25"), 49*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(26, "GPIO_26"), 50*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(27, "GPIO_27"), 51*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(28, "GPIO_28"), 52*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(29, "GPIO_29"), 53*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(30, "GPIO_30"), 54*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(31, "GPIO_31"), 55*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(32, "GPIO_32"), 56*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(33, "GPIO_33"), 57*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(34, "GPIO_34"), 58*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(35, "GPIO_35"), 59*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(36, "GPIO_36"), 60*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(37, "GPIO_37"), 61*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(38, "GPIO_38"), 62*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(39, "GPIO_39"), 63*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(40, "GPIO_40"), 64*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(41, "GPIO_41"), 65*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(42, "GPIO_42"), 66*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(43, "GPIO_43"), 67*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(44, "GPIO_44"), 68*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(45, "GPIO_45"), 69*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(46, "GPIO_46"), 70*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(47, "GPIO_47"), 71*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(48, "GPIO_48"), 72*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(49, "GPIO_49"), 73*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(50, "GPIO_50"), 74*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(51, "GPIO_51"), 75*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(52, "GPIO_52"), 76*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(53, "GPIO_53"), 77*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(54, "GPIO_54"), 78*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(55, "GPIO_55"), 79*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(56, "GPIO_56"), 80*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(57, "GPIO_57"), 81*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(58, "GPIO_58"), 82*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(59, "GPIO_59"), 83*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(60, "GPIO_60"), 84*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(61, "GPIO_61"), 85*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(62, "GPIO_62"), 86*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(63, "GPIO_63"), 87*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(64, "GPIO_64"), 88*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(65, "GPIO_65"), 89*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(66, "GPIO_66"), 90*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(67, "GPIO_67"), 91*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(68, "GPIO_68"), 92*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(69, "GPIO_69"), 93*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(70, "GPIO_70"), 94*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(71, "GPIO_71"), 95*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(72, "GPIO_72"), 96*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(73, "GPIO_73"), 97*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(74, "GPIO_74"), 98*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(75, "GPIO_75"), 99*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(76, "GPIO_76"), 100*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(77, "GPIO_77"), 101*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(78, "GPIO_78"), 102*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(79, "GPIO_79"), 103*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(80, "GPIO_80"), 104*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(81, "GPIO_81"), 105*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(82, "GPIO_82"), 106*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(83, "GPIO_83"), 107*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(84, "GPIO_84"), 108*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(85, "GPIO_85"), 109*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(86, "GPIO_86"), 110*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(87, "GPIO_87"), 111*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(88, "GPIO_88"), 112*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(89, "GPIO_89"), 113*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(90, "GPIO_90"), 114*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(91, "GPIO_91"), 115*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(92, "GPIO_92"), 116*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(93, "GPIO_93"), 117*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(94, "GPIO_94"), 118*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(95, "GPIO_95"), 119*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(96, "GPIO_96"), 120*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(97, "GPIO_97"), 121*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(98, "GPIO_98"), 122*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(99, "GPIO_99"), 123*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(100, "GPIO_100"), 124*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(101, "GPIO_101"), 125*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(102, "GPIO_102"), 126*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(103, "GPIO_103"), 127*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(104, "GPIO_104"), 128*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(105, "GPIO_105"), 129*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(106, "GPIO_106"), 130*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(107, "GPIO_107"), 131*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(108, "GPIO_108"), 132*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(109, "GPIO_109"), 133*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(110, "GPIO_110"), 134*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(111, "GPIO_111"), 135*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(112, "GPIO_112"), 136*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(113, "GPIO_113"), 137*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(114, "GPIO_114"), 138*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(115, "GPIO_115"), 139*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(116, "GPIO_116"), 140*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(117, "GPIO_117"), 141*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(118, "GPIO_118"), 142*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(119, "GPIO_119"), 143*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(120, "GPIO_120"), 144*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(121, "GPIO_121"), 145*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(122, "GPIO_122"), 146*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(123, "GPIO_123"), 147*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(124, "GPIO_124"), 148*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(125, "GPIO_125"), 149*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(126, "GPIO_126"), 150*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(127, "GPIO_127"), 151*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(128, "GPIO_128"), 152*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(129, "GPIO_129"), 153*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(130, "GPIO_130"), 154*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(131, "GPIO_131"), 155*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(132, "GPIO_132"), 156*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(133, "GPIO_133"), 157*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(134, "GPIO_134"), 158*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(135, "GPIO_135"), 159*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(136, "GPIO_136"), 160*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(137, "GPIO_137"), 161*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(138, "GPIO_138"), 162*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(139, "GPIO_139"), 163*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(140, "GPIO_140"), 164*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(141, "GPIO_141"), 165*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(142, "GPIO_142"), 166*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(143, "GPIO_143"), 167*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(144, "GPIO_144"), 168*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(145, "GPIO_145"), 169*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(146, "GPIO_146"), 170*c4f6f9c0SGeorgi Djakov 171*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(147, "SDC1_CLK"), 172*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(148, "SDC1_CMD"), 173*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(149, "SDC1_DATA"), 174*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(150, "SDC2_CLK"), 175*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(151, "SDC2_CMD"), 176*c4f6f9c0SGeorgi Djakov PINCTRL_PIN(152, "SDC2_DATA"), 177*c4f6f9c0SGeorgi Djakov }; 178*c4f6f9c0SGeorgi Djakov 179*c4f6f9c0SGeorgi Djakov #define DECLARE_APQ_GPIO_PINS(pin) static const unsigned int gpio##pin##_pins[] = { pin } 180*c4f6f9c0SGeorgi Djakov 181*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(0); 182*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(1); 183*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(2); 184*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(3); 185*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(4); 186*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(5); 187*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(6); 188*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(7); 189*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(8); 190*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(9); 191*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(10); 192*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(11); 193*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(12); 194*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(13); 195*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(14); 196*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(15); 197*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(16); 198*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(17); 199*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(18); 200*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(19); 201*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(20); 202*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(21); 203*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(22); 204*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(23); 205*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(24); 206*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(25); 207*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(26); 208*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(27); 209*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(28); 210*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(29); 211*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(30); 212*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(31); 213*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(32); 214*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(33); 215*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(34); 216*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(35); 217*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(36); 218*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(37); 219*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(38); 220*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(39); 221*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(40); 222*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(41); 223*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(42); 224*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(43); 225*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(44); 226*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(45); 227*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(46); 228*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(47); 229*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(48); 230*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(49); 231*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(50); 232*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(51); 233*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(52); 234*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(53); 235*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(54); 236*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(55); 237*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(56); 238*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(57); 239*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(58); 240*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(59); 241*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(60); 242*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(61); 243*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(62); 244*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(63); 245*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(64); 246*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(65); 247*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(66); 248*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(67); 249*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(68); 250*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(69); 251*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(70); 252*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(71); 253*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(72); 254*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(73); 255*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(74); 256*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(75); 257*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(76); 258*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(77); 259*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(78); 260*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(79); 261*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(80); 262*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(81); 263*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(82); 264*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(83); 265*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(84); 266*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(85); 267*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(86); 268*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(87); 269*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(88); 270*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(89); 271*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(90); 272*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(91); 273*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(92); 274*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(93); 275*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(94); 276*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(95); 277*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(96); 278*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(97); 279*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(98); 280*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(99); 281*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(100); 282*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(101); 283*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(102); 284*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(103); 285*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(104); 286*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(105); 287*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(106); 288*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(107); 289*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(108); 290*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(109); 291*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(110); 292*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(111); 293*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(112); 294*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(113); 295*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(114); 296*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(115); 297*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(116); 298*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(117); 299*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(118); 300*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(119); 301*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(120); 302*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(121); 303*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(122); 304*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(123); 305*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(124); 306*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(125); 307*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(126); 308*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(127); 309*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(128); 310*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(129); 311*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(130); 312*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(131); 313*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(132); 314*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(133); 315*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(134); 316*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(135); 317*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(136); 318*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(137); 319*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(138); 320*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(139); 321*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(140); 322*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(141); 323*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(142); 324*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(143); 325*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(144); 326*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(145); 327*c4f6f9c0SGeorgi Djakov DECLARE_APQ_GPIO_PINS(146); 328*c4f6f9c0SGeorgi Djakov 329*c4f6f9c0SGeorgi Djakov static const unsigned int sdc1_clk_pins[] = { 147 }; 330*c4f6f9c0SGeorgi Djakov static const unsigned int sdc1_cmd_pins[] = { 148 }; 331*c4f6f9c0SGeorgi Djakov static const unsigned int sdc1_data_pins[] = { 149 }; 332*c4f6f9c0SGeorgi Djakov static const unsigned int sdc2_clk_pins[] = { 150 }; 333*c4f6f9c0SGeorgi Djakov static const unsigned int sdc2_cmd_pins[] = { 151 }; 334*c4f6f9c0SGeorgi Djakov static const unsigned int sdc2_data_pins[] = { 152 }; 335*c4f6f9c0SGeorgi Djakov 336*c4f6f9c0SGeorgi Djakov #define FUNCTION(fname) \ 337*c4f6f9c0SGeorgi Djakov [APQ_MUX_##fname] = { \ 338*c4f6f9c0SGeorgi Djakov .name = #fname, \ 339*c4f6f9c0SGeorgi Djakov .groups = fname##_groups, \ 340*c4f6f9c0SGeorgi Djakov .ngroups = ARRAY_SIZE(fname##_groups), \ 341*c4f6f9c0SGeorgi Djakov } 342*c4f6f9c0SGeorgi Djakov 343*c4f6f9c0SGeorgi Djakov #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7) \ 344*c4f6f9c0SGeorgi Djakov { \ 345*c4f6f9c0SGeorgi Djakov .name = "gpio" #id, \ 346*c4f6f9c0SGeorgi Djakov .pins = gpio##id##_pins, \ 347*c4f6f9c0SGeorgi Djakov .npins = ARRAY_SIZE(gpio##id##_pins), \ 348*c4f6f9c0SGeorgi Djakov .funcs = (int[]){ \ 349*c4f6f9c0SGeorgi Djakov APQ_MUX_gpio, \ 350*c4f6f9c0SGeorgi Djakov APQ_MUX_##f1, \ 351*c4f6f9c0SGeorgi Djakov APQ_MUX_##f2, \ 352*c4f6f9c0SGeorgi Djakov APQ_MUX_##f3, \ 353*c4f6f9c0SGeorgi Djakov APQ_MUX_##f4, \ 354*c4f6f9c0SGeorgi Djakov APQ_MUX_##f5, \ 355*c4f6f9c0SGeorgi Djakov APQ_MUX_##f6, \ 356*c4f6f9c0SGeorgi Djakov APQ_MUX_##f7 \ 357*c4f6f9c0SGeorgi Djakov }, \ 358*c4f6f9c0SGeorgi Djakov .nfuncs = 8, \ 359*c4f6f9c0SGeorgi Djakov .ctl_reg = 0x1000 + 0x10 * id, \ 360*c4f6f9c0SGeorgi Djakov .io_reg = 0x1004 + 0x10 * id, \ 361*c4f6f9c0SGeorgi Djakov .intr_cfg_reg = 0x1008 + 0x10 * id, \ 362*c4f6f9c0SGeorgi Djakov .intr_status_reg = 0x100c + 0x10 * id, \ 363*c4f6f9c0SGeorgi Djakov .intr_target_reg = 0x1008 + 0x10 * id, \ 364*c4f6f9c0SGeorgi Djakov .mux_bit = 2, \ 365*c4f6f9c0SGeorgi Djakov .pull_bit = 0, \ 366*c4f6f9c0SGeorgi Djakov .drv_bit = 6, \ 367*c4f6f9c0SGeorgi Djakov .oe_bit = 9, \ 368*c4f6f9c0SGeorgi Djakov .in_bit = 0, \ 369*c4f6f9c0SGeorgi Djakov .out_bit = 1, \ 370*c4f6f9c0SGeorgi Djakov .intr_enable_bit = 0, \ 371*c4f6f9c0SGeorgi Djakov .intr_status_bit = 0, \ 372*c4f6f9c0SGeorgi Djakov .intr_ack_high = 0, \ 373*c4f6f9c0SGeorgi Djakov .intr_target_bit = 5, \ 374*c4f6f9c0SGeorgi Djakov .intr_raw_status_bit = 4, \ 375*c4f6f9c0SGeorgi Djakov .intr_polarity_bit = 1, \ 376*c4f6f9c0SGeorgi Djakov .intr_detection_bit = 2, \ 377*c4f6f9c0SGeorgi Djakov .intr_detection_width = 2, \ 378*c4f6f9c0SGeorgi Djakov } 379*c4f6f9c0SGeorgi Djakov 380*c4f6f9c0SGeorgi Djakov #define SDC_PINGROUP(pg_name, ctl, pull, drv) \ 381*c4f6f9c0SGeorgi Djakov { \ 382*c4f6f9c0SGeorgi Djakov .name = #pg_name, \ 383*c4f6f9c0SGeorgi Djakov .pins = pg_name##_pins, \ 384*c4f6f9c0SGeorgi Djakov .npins = ARRAY_SIZE(pg_name##_pins), \ 385*c4f6f9c0SGeorgi Djakov .ctl_reg = ctl, \ 386*c4f6f9c0SGeorgi Djakov .io_reg = 0, \ 387*c4f6f9c0SGeorgi Djakov .intr_cfg_reg = 0, \ 388*c4f6f9c0SGeorgi Djakov .intr_status_reg = 0, \ 389*c4f6f9c0SGeorgi Djakov .intr_target_reg = 0, \ 390*c4f6f9c0SGeorgi Djakov .mux_bit = -1, \ 391*c4f6f9c0SGeorgi Djakov .pull_bit = pull, \ 392*c4f6f9c0SGeorgi Djakov .drv_bit = drv, \ 393*c4f6f9c0SGeorgi Djakov .oe_bit = -1, \ 394*c4f6f9c0SGeorgi Djakov .in_bit = -1, \ 395*c4f6f9c0SGeorgi Djakov .out_bit = -1, \ 396*c4f6f9c0SGeorgi Djakov .intr_enable_bit = -1, \ 397*c4f6f9c0SGeorgi Djakov .intr_status_bit = -1, \ 398*c4f6f9c0SGeorgi Djakov .intr_target_bit = -1, \ 399*c4f6f9c0SGeorgi Djakov .intr_raw_status_bit = -1, \ 400*c4f6f9c0SGeorgi Djakov .intr_polarity_bit = -1, \ 401*c4f6f9c0SGeorgi Djakov .intr_detection_bit = -1, \ 402*c4f6f9c0SGeorgi Djakov .intr_detection_width = -1, \ 403*c4f6f9c0SGeorgi Djakov } 404*c4f6f9c0SGeorgi Djakov 405*c4f6f9c0SGeorgi Djakov enum apq8084_functions { 406*c4f6f9c0SGeorgi Djakov APQ_MUX_adsp_ext, 407*c4f6f9c0SGeorgi Djakov APQ_MUX_audio_ref, 408*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c1, 409*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c2, 410*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c3, 411*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c4, 412*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c5, 413*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c6, 414*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c7, 415*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c8, 416*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c9, 417*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c10, 418*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c11, 419*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_i2c12, 420*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi1, 421*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi1_cs1, 422*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi1_cs2, 423*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi1_cs3, 424*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi2, 425*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi3, 426*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi3_cs1, 427*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi3_cs2, 428*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi3_cs3, 429*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi4, 430*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi5, 431*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi6, 432*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi7, 433*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi8, 434*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi9, 435*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi10, 436*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi10_cs1, 437*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi10_cs2, 438*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi10_cs3, 439*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi11, 440*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_spi12, 441*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart1, 442*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart2, 443*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart3, 444*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart4, 445*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart5, 446*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart6, 447*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart7, 448*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart8, 449*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart9, 450*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart10, 451*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart11, 452*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uart12, 453*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim1, 454*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim2, 455*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim3, 456*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim4, 457*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim5, 458*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim6, 459*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim7, 460*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim8, 461*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim9, 462*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim10, 463*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim11, 464*c4f6f9c0SGeorgi Djakov APQ_MUX_blsp_uim12, 465*c4f6f9c0SGeorgi Djakov APQ_MUX_cam_mclk0, 466*c4f6f9c0SGeorgi Djakov APQ_MUX_cam_mclk1, 467*c4f6f9c0SGeorgi Djakov APQ_MUX_cam_mclk2, 468*c4f6f9c0SGeorgi Djakov APQ_MUX_cam_mclk3, 469*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_async, 470*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_async_in0, 471*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_i2c0, 472*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_i2c1, 473*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_timer0, 474*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_timer1, 475*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_timer2, 476*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_timer3, 477*c4f6f9c0SGeorgi Djakov APQ_MUX_cci_timer4, 478*c4f6f9c0SGeorgi Djakov APQ_MUX_edp_hpd, 479*c4f6f9c0SGeorgi Djakov APQ_MUX_gcc_gp1, 480*c4f6f9c0SGeorgi Djakov APQ_MUX_gcc_gp2, 481*c4f6f9c0SGeorgi Djakov APQ_MUX_gcc_gp3, 482*c4f6f9c0SGeorgi Djakov APQ_MUX_gcc_obt, 483*c4f6f9c0SGeorgi Djakov APQ_MUX_gcc_vtt, 484*c4f6f9c0SGeorgi Djakov APQ_MUX_gp_mn, 485*c4f6f9c0SGeorgi Djakov APQ_MUX_gp_pdm0, 486*c4f6f9c0SGeorgi Djakov APQ_MUX_gp_pdm1, 487*c4f6f9c0SGeorgi Djakov APQ_MUX_gp_pdm2, 488*c4f6f9c0SGeorgi Djakov APQ_MUX_gp0_clk, 489*c4f6f9c0SGeorgi Djakov APQ_MUX_gp1_clk, 490*c4f6f9c0SGeorgi Djakov APQ_MUX_gpio, 491*c4f6f9c0SGeorgi Djakov APQ_MUX_hdmi_cec, 492*c4f6f9c0SGeorgi Djakov APQ_MUX_hdmi_ddc, 493*c4f6f9c0SGeorgi Djakov APQ_MUX_hdmi_dtest, 494*c4f6f9c0SGeorgi Djakov APQ_MUX_hdmi_hpd, 495*c4f6f9c0SGeorgi Djakov APQ_MUX_hdmi_rcv, 496*c4f6f9c0SGeorgi Djakov APQ_MUX_hsic, 497*c4f6f9c0SGeorgi Djakov APQ_MUX_ldo_en, 498*c4f6f9c0SGeorgi Djakov APQ_MUX_ldo_update, 499*c4f6f9c0SGeorgi Djakov APQ_MUX_mdp_vsync, 500*c4f6f9c0SGeorgi Djakov APQ_MUX_pci_e0, 501*c4f6f9c0SGeorgi Djakov APQ_MUX_pci_e0_n, 502*c4f6f9c0SGeorgi Djakov APQ_MUX_pci_e0_rst, 503*c4f6f9c0SGeorgi Djakov APQ_MUX_pci_e1, 504*c4f6f9c0SGeorgi Djakov APQ_MUX_pci_e1_rst, 505*c4f6f9c0SGeorgi Djakov APQ_MUX_pci_e1_rst_n, 506*c4f6f9c0SGeorgi Djakov APQ_MUX_pci_e1_clkreq_n, 507*c4f6f9c0SGeorgi Djakov APQ_MUX_pri_mi2s, 508*c4f6f9c0SGeorgi Djakov APQ_MUX_qua_mi2s, 509*c4f6f9c0SGeorgi Djakov APQ_MUX_sata_act, 510*c4f6f9c0SGeorgi Djakov APQ_MUX_sata_devsleep, 511*c4f6f9c0SGeorgi Djakov APQ_MUX_sata_devsleep_n, 512*c4f6f9c0SGeorgi Djakov APQ_MUX_sd_write, 513*c4f6f9c0SGeorgi Djakov APQ_MUX_sdc_emmc_mode, 514*c4f6f9c0SGeorgi Djakov APQ_MUX_sdc3, 515*c4f6f9c0SGeorgi Djakov APQ_MUX_sdc4, 516*c4f6f9c0SGeorgi Djakov APQ_MUX_sec_mi2s, 517*c4f6f9c0SGeorgi Djakov APQ_MUX_slimbus, 518*c4f6f9c0SGeorgi Djakov APQ_MUX_spdif_tx, 519*c4f6f9c0SGeorgi Djakov APQ_MUX_spkr_i2s, 520*c4f6f9c0SGeorgi Djakov APQ_MUX_spkr_i2s_ws, 521*c4f6f9c0SGeorgi Djakov APQ_MUX_spss_geni, 522*c4f6f9c0SGeorgi Djakov APQ_MUX_ter_mi2s, 523*c4f6f9c0SGeorgi Djakov APQ_MUX_tsif1, 524*c4f6f9c0SGeorgi Djakov APQ_MUX_tsif2, 525*c4f6f9c0SGeorgi Djakov APQ_MUX_uim, 526*c4f6f9c0SGeorgi Djakov APQ_MUX_uim_batt_alarm, 527*c4f6f9c0SGeorgi Djakov APQ_MUX_NA, 528*c4f6f9c0SGeorgi Djakov }; 529*c4f6f9c0SGeorgi Djakov 530*c4f6f9c0SGeorgi Djakov static const char * const gpio_groups[] = { 531*c4f6f9c0SGeorgi Djakov "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", 532*c4f6f9c0SGeorgi Djakov "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", 533*c4f6f9c0SGeorgi Djakov "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", 534*c4f6f9c0SGeorgi Djakov "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", 535*c4f6f9c0SGeorgi Djakov "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", 536*c4f6f9c0SGeorgi Djakov "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", 537*c4f6f9c0SGeorgi Djakov "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", 538*c4f6f9c0SGeorgi Djakov "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", 539*c4f6f9c0SGeorgi Djakov "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", 540*c4f6f9c0SGeorgi Djakov "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", 541*c4f6f9c0SGeorgi Djakov "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", 542*c4f6f9c0SGeorgi Djakov "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", 543*c4f6f9c0SGeorgi Djakov "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91", 544*c4f6f9c0SGeorgi Djakov "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98", 545*c4f6f9c0SGeorgi Djakov "gpio99", "gpio100", "gpio101", "gpio102", "gpio103", "gpio104", 546*c4f6f9c0SGeorgi Djakov "gpio105", "gpio106", "gpio107", "gpio108", "gpio109", "gpio110", 547*c4f6f9c0SGeorgi Djakov "gpio111", "gpio112", "gpio113", "gpio114", "gpio115", "gpio116", 548*c4f6f9c0SGeorgi Djakov "gpio117", "gpio118", "gpio119", "gpio120", "gpio121", "gpio122", 549*c4f6f9c0SGeorgi Djakov "gpio123", "gpio124", "gpio125", "gpio126", "gpio127", "gpio128", 550*c4f6f9c0SGeorgi Djakov "gpio129", "gpio130", "gpio131", "gpio132", "gpio133", "gpio134", 551*c4f6f9c0SGeorgi Djakov "gpio135", "gpio136", "gpio137", "gpio138", "gpio139", "gpio140", 552*c4f6f9c0SGeorgi Djakov "gpio141", "gpio142", "gpio143", "gpio144", "gpio145", "gpio146" 553*c4f6f9c0SGeorgi Djakov }; 554*c4f6f9c0SGeorgi Djakov 555*c4f6f9c0SGeorgi Djakov static const char * const adsp_ext_groups[] = { 556*c4f6f9c0SGeorgi Djakov "gpio34" 557*c4f6f9c0SGeorgi Djakov }; 558*c4f6f9c0SGeorgi Djakov static const char * const audio_ref_groups[] = { 559*c4f6f9c0SGeorgi Djakov "gpio100" 560*c4f6f9c0SGeorgi Djakov }; 561*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c1_groups[] = { 562*c4f6f9c0SGeorgi Djakov "gpio2", "gpio3" 563*c4f6f9c0SGeorgi Djakov }; 564*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c2_groups[] = { 565*c4f6f9c0SGeorgi Djakov "gpio6", "gpio7" 566*c4f6f9c0SGeorgi Djakov }; 567*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c3_groups[] = { 568*c4f6f9c0SGeorgi Djakov "gpio10", "gpio11" 569*c4f6f9c0SGeorgi Djakov }; 570*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c4_groups[] = { 571*c4f6f9c0SGeorgi Djakov "gpio29", "gpio30" 572*c4f6f9c0SGeorgi Djakov }; 573*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c5_groups[] = { 574*c4f6f9c0SGeorgi Djakov "gpio41", "gpio42" 575*c4f6f9c0SGeorgi Djakov }; 576*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c6_groups[] = { 577*c4f6f9c0SGeorgi Djakov "gpio45", "gpio46" 578*c4f6f9c0SGeorgi Djakov }; 579*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c7_groups[] = { 580*c4f6f9c0SGeorgi Djakov "gpio132", "gpio133" 581*c4f6f9c0SGeorgi Djakov }; 582*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c8_groups[] = { 583*c4f6f9c0SGeorgi Djakov "gpio53", "gpio54" 584*c4f6f9c0SGeorgi Djakov }; 585*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c9_groups[] = { 586*c4f6f9c0SGeorgi Djakov "gpio57", "gpio58" 587*c4f6f9c0SGeorgi Djakov }; 588*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c10_groups[] = { 589*c4f6f9c0SGeorgi Djakov "gpio61", "gpio62" 590*c4f6f9c0SGeorgi Djakov }; 591*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c11_groups[] = { 592*c4f6f9c0SGeorgi Djakov "gpio65", "gpio66" 593*c4f6f9c0SGeorgi Djakov }; 594*c4f6f9c0SGeorgi Djakov static const char * const blsp_i2c12_groups[] = { 595*c4f6f9c0SGeorgi Djakov "gpio49", "gpio50" 596*c4f6f9c0SGeorgi Djakov }; 597*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_groups[] = { 598*c4f6f9c0SGeorgi Djakov "gpio0", "gpio1", "gpio2", "gpio3" 599*c4f6f9c0SGeorgi Djakov }; 600*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi2_groups[] = { 601*c4f6f9c0SGeorgi Djakov "gpio4", "gpio5", "gpio6", "gpio7" 602*c4f6f9c0SGeorgi Djakov }; 603*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_groups[] = { 604*c4f6f9c0SGeorgi Djakov "gpio8", "gpio9", "gpio10", "gpio11" 605*c4f6f9c0SGeorgi Djakov }; 606*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi4_groups[] = { 607*c4f6f9c0SGeorgi Djakov "gpio27", "gpio28", "gpio29", "gpio30" 608*c4f6f9c0SGeorgi Djakov }; 609*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi5_groups[] = { 610*c4f6f9c0SGeorgi Djakov "gpio39", "gpio40", "gpio41", "gpio42" 611*c4f6f9c0SGeorgi Djakov }; 612*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi6_groups[] = { 613*c4f6f9c0SGeorgi Djakov "gpio43", "gpio44", "gpio45", "gpio46" 614*c4f6f9c0SGeorgi Djakov }; 615*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi7_groups[] = { 616*c4f6f9c0SGeorgi Djakov "gpio130", "gpio131", "gpio132", "gpio133" 617*c4f6f9c0SGeorgi Djakov }; 618*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi8_groups[] = { 619*c4f6f9c0SGeorgi Djakov "gpio51", "gpio52", "gpio53", "gpio54" 620*c4f6f9c0SGeorgi Djakov }; 621*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi9_groups[] = { 622*c4f6f9c0SGeorgi Djakov "gpio55", "gpio56", "gpio57", "gpio58" 623*c4f6f9c0SGeorgi Djakov }; 624*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_groups[] = { 625*c4f6f9c0SGeorgi Djakov "gpio59", "gpio60", "gpio61", "gpio62" 626*c4f6f9c0SGeorgi Djakov }; 627*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi11_groups[] = { 628*c4f6f9c0SGeorgi Djakov "gpio63", "gpio64", "gpio65", "gpio66" 629*c4f6f9c0SGeorgi Djakov }; 630*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi12_groups[] = { 631*c4f6f9c0SGeorgi Djakov "gpio47", "gpio48", "gpio49", "gpio50" 632*c4f6f9c0SGeorgi Djakov }; 633*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart1_groups[] = { 634*c4f6f9c0SGeorgi Djakov "gpio0", "gpio1", "gpio2", "gpio3" 635*c4f6f9c0SGeorgi Djakov }; 636*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart2_groups[] = { 637*c4f6f9c0SGeorgi Djakov "gpio4", "gpio5", "gpio6", "gpio7" 638*c4f6f9c0SGeorgi Djakov }; 639*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart3_groups[] = { 640*c4f6f9c0SGeorgi Djakov "gpio8" 641*c4f6f9c0SGeorgi Djakov }; 642*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart4_groups[] = { 643*c4f6f9c0SGeorgi Djakov "gpio27", "gpio28", "gpio29", "gpio30" 644*c4f6f9c0SGeorgi Djakov }; 645*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart5_groups[] = { 646*c4f6f9c0SGeorgi Djakov "gpio39", "gpio40", "gpio41", "gpio42" 647*c4f6f9c0SGeorgi Djakov }; 648*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart6_groups[] = { 649*c4f6f9c0SGeorgi Djakov "gpio43", "gpio44", "gpio45", "gpio46" 650*c4f6f9c0SGeorgi Djakov }; 651*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart7_groups[] = { 652*c4f6f9c0SGeorgi Djakov "gpio130", "gpio131", "gpio132", "gpio133" 653*c4f6f9c0SGeorgi Djakov }; 654*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart8_groups[] = { 655*c4f6f9c0SGeorgi Djakov "gpio51", "gpio52", "gpio53", "gpio54" 656*c4f6f9c0SGeorgi Djakov }; 657*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart9_groups[] = { 658*c4f6f9c0SGeorgi Djakov "gpio55", "gpio56", "gpio57", "gpio58" 659*c4f6f9c0SGeorgi Djakov }; 660*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart10_groups[] = { 661*c4f6f9c0SGeorgi Djakov "gpio59", "gpio60", "gpio61", "gpio62" 662*c4f6f9c0SGeorgi Djakov }; 663*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart11_groups[] = { 664*c4f6f9c0SGeorgi Djakov "gpio63", "gpio64", "gpio65", "gpio66" 665*c4f6f9c0SGeorgi Djakov }; 666*c4f6f9c0SGeorgi Djakov static const char * const blsp_uart12_groups[] = { 667*c4f6f9c0SGeorgi Djakov "gpio47", "gpio48", "gpio49", "gpio50" 668*c4f6f9c0SGeorgi Djakov }; 669*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim1_groups[] = { 670*c4f6f9c0SGeorgi Djakov "gpio0", "gpio1" 671*c4f6f9c0SGeorgi Djakov }; 672*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim2_groups[] = { 673*c4f6f9c0SGeorgi Djakov "gpio4", "gpio5" 674*c4f6f9c0SGeorgi Djakov }; 675*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim3_groups[] = { 676*c4f6f9c0SGeorgi Djakov "gpio8", "gpio9" 677*c4f6f9c0SGeorgi Djakov }; 678*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim4_groups[] = { 679*c4f6f9c0SGeorgi Djakov "gpio27", "gpio28" 680*c4f6f9c0SGeorgi Djakov }; 681*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim5_groups[] = { 682*c4f6f9c0SGeorgi Djakov "gpio39", "gpio40" 683*c4f6f9c0SGeorgi Djakov }; 684*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim6_groups[] = { 685*c4f6f9c0SGeorgi Djakov "gpio43", "gpio44" 686*c4f6f9c0SGeorgi Djakov }; 687*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim7_groups[] = { 688*c4f6f9c0SGeorgi Djakov "gpio130", "gpio131" 689*c4f6f9c0SGeorgi Djakov }; 690*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim8_groups[] = { 691*c4f6f9c0SGeorgi Djakov "gpio51", "gpio52" 692*c4f6f9c0SGeorgi Djakov }; 693*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim9_groups[] = { 694*c4f6f9c0SGeorgi Djakov "gpio55", "gpio56" 695*c4f6f9c0SGeorgi Djakov }; 696*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim10_groups[] = { 697*c4f6f9c0SGeorgi Djakov "gpio59", "gpio60" 698*c4f6f9c0SGeorgi Djakov }; 699*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim11_groups[] = { 700*c4f6f9c0SGeorgi Djakov "gpio63", "gpio64" 701*c4f6f9c0SGeorgi Djakov }; 702*c4f6f9c0SGeorgi Djakov static const char * const blsp_uim12_groups[] = { 703*c4f6f9c0SGeorgi Djakov "gpio47", "gpio48" 704*c4f6f9c0SGeorgi Djakov }; 705*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_cs1_groups[] = { 706*c4f6f9c0SGeorgi Djakov "gpio116" 707*c4f6f9c0SGeorgi Djakov }; 708*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_cs2_groups[] = { 709*c4f6f9c0SGeorgi Djakov "gpio117" 710*c4f6f9c0SGeorgi Djakov }; 711*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi1_cs3_groups[] = { 712*c4f6f9c0SGeorgi Djakov "gpio118" 713*c4f6f9c0SGeorgi Djakov }; 714*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_cs1_groups[] = { 715*c4f6f9c0SGeorgi Djakov "gpio67" 716*c4f6f9c0SGeorgi Djakov }; 717*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_cs2_groups[] = { 718*c4f6f9c0SGeorgi Djakov "gpio71" 719*c4f6f9c0SGeorgi Djakov }; 720*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi3_cs3_groups[] = { 721*c4f6f9c0SGeorgi Djakov "gpio72" 722*c4f6f9c0SGeorgi Djakov }; 723*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_cs1_groups[] = { 724*c4f6f9c0SGeorgi Djakov "gpio106" 725*c4f6f9c0SGeorgi Djakov }; 726*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_cs2_groups[] = { 727*c4f6f9c0SGeorgi Djakov "gpio111" 728*c4f6f9c0SGeorgi Djakov }; 729*c4f6f9c0SGeorgi Djakov static const char * const blsp_spi10_cs3_groups[] = { 730*c4f6f9c0SGeorgi Djakov "gpio128" 731*c4f6f9c0SGeorgi Djakov }; 732*c4f6f9c0SGeorgi Djakov static const char * const cam_mclk0_groups[] = { 733*c4f6f9c0SGeorgi Djakov "gpio15" 734*c4f6f9c0SGeorgi Djakov }; 735*c4f6f9c0SGeorgi Djakov static const char * const cam_mclk1_groups[] = { 736*c4f6f9c0SGeorgi Djakov "gpio16" 737*c4f6f9c0SGeorgi Djakov }; 738*c4f6f9c0SGeorgi Djakov static const char * const cam_mclk2_groups[] = { 739*c4f6f9c0SGeorgi Djakov "gpio17" 740*c4f6f9c0SGeorgi Djakov }; 741*c4f6f9c0SGeorgi Djakov static const char * const cam_mclk3_groups[] = { 742*c4f6f9c0SGeorgi Djakov "gpio18" 743*c4f6f9c0SGeorgi Djakov }; 744*c4f6f9c0SGeorgi Djakov static const char * const cci_async_groups[] = { 745*c4f6f9c0SGeorgi Djakov "gpio26", "gpio119" 746*c4f6f9c0SGeorgi Djakov }; 747*c4f6f9c0SGeorgi Djakov static const char * const cci_async_in0_groups[] = { 748*c4f6f9c0SGeorgi Djakov "gpio120" 749*c4f6f9c0SGeorgi Djakov }; 750*c4f6f9c0SGeorgi Djakov static const char * const cci_i2c0_groups[] = { 751*c4f6f9c0SGeorgi Djakov "gpio19", "gpio20" 752*c4f6f9c0SGeorgi Djakov }; 753*c4f6f9c0SGeorgi Djakov static const char * const cci_i2c1_groups[] = { 754*c4f6f9c0SGeorgi Djakov "gpio21", "gpio22" 755*c4f6f9c0SGeorgi Djakov }; 756*c4f6f9c0SGeorgi Djakov static const char * const cci_timer0_groups[] = { 757*c4f6f9c0SGeorgi Djakov "gpio23" 758*c4f6f9c0SGeorgi Djakov }; 759*c4f6f9c0SGeorgi Djakov static const char * const cci_timer1_groups[] = { 760*c4f6f9c0SGeorgi Djakov "gpio24" 761*c4f6f9c0SGeorgi Djakov }; 762*c4f6f9c0SGeorgi Djakov static const char * const cci_timer2_groups[] = { 763*c4f6f9c0SGeorgi Djakov "gpio25" 764*c4f6f9c0SGeorgi Djakov }; 765*c4f6f9c0SGeorgi Djakov static const char * const cci_timer3_groups[] = { 766*c4f6f9c0SGeorgi Djakov "gpio26" 767*c4f6f9c0SGeorgi Djakov }; 768*c4f6f9c0SGeorgi Djakov static const char * const cci_timer4_groups[] = { 769*c4f6f9c0SGeorgi Djakov "gpio119" 770*c4f6f9c0SGeorgi Djakov }; 771*c4f6f9c0SGeorgi Djakov static const char * const edp_hpd_groups[] = { 772*c4f6f9c0SGeorgi Djakov "gpio103" 773*c4f6f9c0SGeorgi Djakov }; 774*c4f6f9c0SGeorgi Djakov static const char * const gcc_gp1_groups[] = { 775*c4f6f9c0SGeorgi Djakov "gpio37" 776*c4f6f9c0SGeorgi Djakov }; 777*c4f6f9c0SGeorgi Djakov static const char * const gcc_gp2_groups[] = { 778*c4f6f9c0SGeorgi Djakov "gpio38" 779*c4f6f9c0SGeorgi Djakov }; 780*c4f6f9c0SGeorgi Djakov static const char * const gcc_gp3_groups[] = { 781*c4f6f9c0SGeorgi Djakov "gpio86" 782*c4f6f9c0SGeorgi Djakov }; 783*c4f6f9c0SGeorgi Djakov static const char * const gcc_obt_groups[] = { 784*c4f6f9c0SGeorgi Djakov "gpio127" 785*c4f6f9c0SGeorgi Djakov }; 786*c4f6f9c0SGeorgi Djakov static const char * const gcc_vtt_groups[] = { 787*c4f6f9c0SGeorgi Djakov "gpio126" 788*c4f6f9c0SGeorgi Djakov }; 789*c4f6f9c0SGeorgi Djakov static const char * const gp_mn_groups[] = { 790*c4f6f9c0SGeorgi Djakov "gpio29" 791*c4f6f9c0SGeorgi Djakov }; 792*c4f6f9c0SGeorgi Djakov static const char * const gp_pdm0_groups[] = { 793*c4f6f9c0SGeorgi Djakov "gpio48", "gpio83" 794*c4f6f9c0SGeorgi Djakov }; 795*c4f6f9c0SGeorgi Djakov static const char * const gp_pdm1_groups[] = { 796*c4f6f9c0SGeorgi Djakov "gpio84", "gpio101" 797*c4f6f9c0SGeorgi Djakov }; 798*c4f6f9c0SGeorgi Djakov static const char * const gp_pdm2_groups[] = { 799*c4f6f9c0SGeorgi Djakov "gpio85", "gpio110" 800*c4f6f9c0SGeorgi Djakov }; 801*c4f6f9c0SGeorgi Djakov static const char * const gp0_clk_groups[] = { 802*c4f6f9c0SGeorgi Djakov "gpio25" 803*c4f6f9c0SGeorgi Djakov }; 804*c4f6f9c0SGeorgi Djakov static const char * const gp1_clk_groups[] = { 805*c4f6f9c0SGeorgi Djakov "gpio26" 806*c4f6f9c0SGeorgi Djakov }; 807*c4f6f9c0SGeorgi Djakov static const char * const hdmi_cec_groups[] = { 808*c4f6f9c0SGeorgi Djakov "gpio31" 809*c4f6f9c0SGeorgi Djakov }; 810*c4f6f9c0SGeorgi Djakov static const char * const hdmi_ddc_groups[] = { 811*c4f6f9c0SGeorgi Djakov "gpio32", "gpio33" 812*c4f6f9c0SGeorgi Djakov }; 813*c4f6f9c0SGeorgi Djakov static const char * const hdmi_dtest_groups[] = { 814*c4f6f9c0SGeorgi Djakov "gpio123" 815*c4f6f9c0SGeorgi Djakov }; 816*c4f6f9c0SGeorgi Djakov static const char * const hdmi_hpd_groups[] = { 817*c4f6f9c0SGeorgi Djakov "gpio34" 818*c4f6f9c0SGeorgi Djakov }; 819*c4f6f9c0SGeorgi Djakov static const char * const hdmi_rcv_groups[] = { 820*c4f6f9c0SGeorgi Djakov "gpio125" 821*c4f6f9c0SGeorgi Djakov }; 822*c4f6f9c0SGeorgi Djakov static const char * const hsic_groups[] = { 823*c4f6f9c0SGeorgi Djakov "gpio134", "gpio135" 824*c4f6f9c0SGeorgi Djakov }; 825*c4f6f9c0SGeorgi Djakov static const char * const ldo_en_groups[] = { 826*c4f6f9c0SGeorgi Djakov "gpio124" 827*c4f6f9c0SGeorgi Djakov }; 828*c4f6f9c0SGeorgi Djakov static const char * const ldo_update_groups[] = { 829*c4f6f9c0SGeorgi Djakov "gpio125" 830*c4f6f9c0SGeorgi Djakov }; 831*c4f6f9c0SGeorgi Djakov static const char * const mdp_vsync_groups[] = { 832*c4f6f9c0SGeorgi Djakov "gpio12", "gpio13", "gpio14" 833*c4f6f9c0SGeorgi Djakov }; 834*c4f6f9c0SGeorgi Djakov static const char * const pci_e0_groups[] = { 835*c4f6f9c0SGeorgi Djakov "gpio68", "gpio70" 836*c4f6f9c0SGeorgi Djakov }; 837*c4f6f9c0SGeorgi Djakov static const char * const pci_e0_n_groups[] = { 838*c4f6f9c0SGeorgi Djakov "gpio68", "gpio70" 839*c4f6f9c0SGeorgi Djakov }; 840*c4f6f9c0SGeorgi Djakov static const char * const pci_e0_rst_groups[] = { 841*c4f6f9c0SGeorgi Djakov "gpio70" 842*c4f6f9c0SGeorgi Djakov }; 843*c4f6f9c0SGeorgi Djakov static const char * const pci_e1_groups[] = { 844*c4f6f9c0SGeorgi Djakov "gpio140" 845*c4f6f9c0SGeorgi Djakov }; 846*c4f6f9c0SGeorgi Djakov static const char * const pci_e1_rst_groups[] = { 847*c4f6f9c0SGeorgi Djakov "gpio140" 848*c4f6f9c0SGeorgi Djakov }; 849*c4f6f9c0SGeorgi Djakov static const char * const pci_e1_rst_n_groups[] = { 850*c4f6f9c0SGeorgi Djakov "gpio140" 851*c4f6f9c0SGeorgi Djakov }; 852*c4f6f9c0SGeorgi Djakov static const char * const pci_e1_clkreq_n_groups[] = { 853*c4f6f9c0SGeorgi Djakov "gpio141" 854*c4f6f9c0SGeorgi Djakov }; 855*c4f6f9c0SGeorgi Djakov static const char * const pri_mi2s_groups[] = { 856*c4f6f9c0SGeorgi Djakov "gpio76", "gpio77", "gpio78", "gpio79", "gpio80" 857*c4f6f9c0SGeorgi Djakov }; 858*c4f6f9c0SGeorgi Djakov static const char * const qua_mi2s_groups[] = { 859*c4f6f9c0SGeorgi Djakov "gpio91", "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97" 860*c4f6f9c0SGeorgi Djakov }; 861*c4f6f9c0SGeorgi Djakov static const char * const sata_act_groups[] = { 862*c4f6f9c0SGeorgi Djakov "gpio129" 863*c4f6f9c0SGeorgi Djakov }; 864*c4f6f9c0SGeorgi Djakov static const char * const sata_devsleep_groups[] = { 865*c4f6f9c0SGeorgi Djakov "gpio119" 866*c4f6f9c0SGeorgi Djakov }; 867*c4f6f9c0SGeorgi Djakov static const char * const sata_devsleep_n_groups[] = { 868*c4f6f9c0SGeorgi Djakov "gpio119" 869*c4f6f9c0SGeorgi Djakov }; 870*c4f6f9c0SGeorgi Djakov static const char * const sd_write_groups[] = { 871*c4f6f9c0SGeorgi Djakov "gpio75" 872*c4f6f9c0SGeorgi Djakov }; 873*c4f6f9c0SGeorgi Djakov static const char * const sdc_emmc_mode_groups[] = { 874*c4f6f9c0SGeorgi Djakov "gpio146" 875*c4f6f9c0SGeorgi Djakov }; 876*c4f6f9c0SGeorgi Djakov static const char * const sdc3_groups[] = { 877*c4f6f9c0SGeorgi Djakov "gpio67", "gpio68", "gpio69", "gpio70", "gpio71", "gpio72" 878*c4f6f9c0SGeorgi Djakov }; 879*c4f6f9c0SGeorgi Djakov static const char * const sdc4_groups[] = { 880*c4f6f9c0SGeorgi Djakov "gpio82", "gpio83", "gpio84", "gpio85", "gpio86", 881*c4f6f9c0SGeorgi Djakov "gpio91", "gpio95", "gpio96", "gpio97", "gpio101" 882*c4f6f9c0SGeorgi Djakov }; 883*c4f6f9c0SGeorgi Djakov static const char * const sec_mi2s_groups[] = { 884*c4f6f9c0SGeorgi Djakov "gpio81", "gpio82", "gpio83", "gpio84", "gpio85" 885*c4f6f9c0SGeorgi Djakov }; 886*c4f6f9c0SGeorgi Djakov static const char * const slimbus_groups[] = { 887*c4f6f9c0SGeorgi Djakov "gpio98", "gpio99" 888*c4f6f9c0SGeorgi Djakov }; 889*c4f6f9c0SGeorgi Djakov static const char * const spdif_tx_groups[] = { 890*c4f6f9c0SGeorgi Djakov "gpio124", "gpio136", "gpio142" 891*c4f6f9c0SGeorgi Djakov }; 892*c4f6f9c0SGeorgi Djakov static const char * const spkr_i2s_groups[] = { 893*c4f6f9c0SGeorgi Djakov "gpio98", "gpio99", "gpio100" 894*c4f6f9c0SGeorgi Djakov }; 895*c4f6f9c0SGeorgi Djakov static const char * const spkr_i2s_ws_groups[] = { 896*c4f6f9c0SGeorgi Djakov "gpio104" 897*c4f6f9c0SGeorgi Djakov }; 898*c4f6f9c0SGeorgi Djakov static const char * const spss_geni_groups[] = { 899*c4f6f9c0SGeorgi Djakov "gpio8", "gpio9" 900*c4f6f9c0SGeorgi Djakov }; 901*c4f6f9c0SGeorgi Djakov static const char * const ter_mi2s_groups[] = { 902*c4f6f9c0SGeorgi Djakov "gpio86", "gpio87", "gpio88", "gpio89", "gpio90" 903*c4f6f9c0SGeorgi Djakov }; 904*c4f6f9c0SGeorgi Djakov static const char * const tsif1_groups[] = { 905*c4f6f9c0SGeorgi Djakov "gpio82", "gpio83", "gpio84", "gpio85", "gpio86" 906*c4f6f9c0SGeorgi Djakov }; 907*c4f6f9c0SGeorgi Djakov static const char * const tsif2_groups[] = { 908*c4f6f9c0SGeorgi Djakov "gpio91", "gpio95", "gpio96", "gpio97", "gpio101" 909*c4f6f9c0SGeorgi Djakov }; 910*c4f6f9c0SGeorgi Djakov static const char * const uim_groups[] = { 911*c4f6f9c0SGeorgi Djakov "gpio130", "gpio131", "gpio132", "gpio133" 912*c4f6f9c0SGeorgi Djakov }; 913*c4f6f9c0SGeorgi Djakov static const char * const uim_batt_alarm_groups[] = { 914*c4f6f9c0SGeorgi Djakov "gpio102" 915*c4f6f9c0SGeorgi Djakov }; 916*c4f6f9c0SGeorgi Djakov static const struct msm_function apq8084_functions[] = { 917*c4f6f9c0SGeorgi Djakov FUNCTION(adsp_ext), 918*c4f6f9c0SGeorgi Djakov FUNCTION(audio_ref), 919*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c1), 920*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c2), 921*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c3), 922*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c4), 923*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c5), 924*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c6), 925*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c7), 926*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c8), 927*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c9), 928*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c10), 929*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c11), 930*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_i2c12), 931*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi1), 932*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi1_cs1), 933*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi1_cs2), 934*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi1_cs3), 935*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi2), 936*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi3), 937*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi3_cs1), 938*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi3_cs2), 939*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi3_cs3), 940*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi4), 941*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi5), 942*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi6), 943*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi7), 944*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi8), 945*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi9), 946*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi10), 947*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi10_cs1), 948*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi10_cs2), 949*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi10_cs3), 950*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi11), 951*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_spi12), 952*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart1), 953*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart2), 954*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart3), 955*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart4), 956*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart5), 957*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart6), 958*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart7), 959*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart8), 960*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart9), 961*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart10), 962*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart11), 963*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uart12), 964*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim1), 965*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim2), 966*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim3), 967*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim4), 968*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim5), 969*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim6), 970*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim7), 971*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim8), 972*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim9), 973*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim10), 974*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim11), 975*c4f6f9c0SGeorgi Djakov FUNCTION(blsp_uim12), 976*c4f6f9c0SGeorgi Djakov FUNCTION(cam_mclk0), 977*c4f6f9c0SGeorgi Djakov FUNCTION(cam_mclk1), 978*c4f6f9c0SGeorgi Djakov FUNCTION(cam_mclk2), 979*c4f6f9c0SGeorgi Djakov FUNCTION(cam_mclk3), 980*c4f6f9c0SGeorgi Djakov FUNCTION(cci_async), 981*c4f6f9c0SGeorgi Djakov FUNCTION(cci_async_in0), 982*c4f6f9c0SGeorgi Djakov FUNCTION(cci_i2c0), 983*c4f6f9c0SGeorgi Djakov FUNCTION(cci_i2c1), 984*c4f6f9c0SGeorgi Djakov FUNCTION(cci_timer0), 985*c4f6f9c0SGeorgi Djakov FUNCTION(cci_timer1), 986*c4f6f9c0SGeorgi Djakov FUNCTION(cci_timer2), 987*c4f6f9c0SGeorgi Djakov FUNCTION(cci_timer3), 988*c4f6f9c0SGeorgi Djakov FUNCTION(cci_timer4), 989*c4f6f9c0SGeorgi Djakov FUNCTION(edp_hpd), 990*c4f6f9c0SGeorgi Djakov FUNCTION(gcc_gp1), 991*c4f6f9c0SGeorgi Djakov FUNCTION(gcc_gp2), 992*c4f6f9c0SGeorgi Djakov FUNCTION(gcc_gp3), 993*c4f6f9c0SGeorgi Djakov FUNCTION(gcc_obt), 994*c4f6f9c0SGeorgi Djakov FUNCTION(gcc_vtt), 995*c4f6f9c0SGeorgi Djakov FUNCTION(gp_mn), 996*c4f6f9c0SGeorgi Djakov FUNCTION(gp_pdm0), 997*c4f6f9c0SGeorgi Djakov FUNCTION(gp_pdm1), 998*c4f6f9c0SGeorgi Djakov FUNCTION(gp_pdm2), 999*c4f6f9c0SGeorgi Djakov FUNCTION(gp0_clk), 1000*c4f6f9c0SGeorgi Djakov FUNCTION(gp1_clk), 1001*c4f6f9c0SGeorgi Djakov FUNCTION(gpio), 1002*c4f6f9c0SGeorgi Djakov FUNCTION(hdmi_cec), 1003*c4f6f9c0SGeorgi Djakov FUNCTION(hdmi_ddc), 1004*c4f6f9c0SGeorgi Djakov FUNCTION(hdmi_dtest), 1005*c4f6f9c0SGeorgi Djakov FUNCTION(hdmi_hpd), 1006*c4f6f9c0SGeorgi Djakov FUNCTION(hdmi_rcv), 1007*c4f6f9c0SGeorgi Djakov FUNCTION(hsic), 1008*c4f6f9c0SGeorgi Djakov FUNCTION(ldo_en), 1009*c4f6f9c0SGeorgi Djakov FUNCTION(ldo_update), 1010*c4f6f9c0SGeorgi Djakov FUNCTION(mdp_vsync), 1011*c4f6f9c0SGeorgi Djakov FUNCTION(pci_e0), 1012*c4f6f9c0SGeorgi Djakov FUNCTION(pci_e0_n), 1013*c4f6f9c0SGeorgi Djakov FUNCTION(pci_e0_rst), 1014*c4f6f9c0SGeorgi Djakov FUNCTION(pci_e1), 1015*c4f6f9c0SGeorgi Djakov FUNCTION(pci_e1_rst), 1016*c4f6f9c0SGeorgi Djakov FUNCTION(pci_e1_rst_n), 1017*c4f6f9c0SGeorgi Djakov FUNCTION(pci_e1_clkreq_n), 1018*c4f6f9c0SGeorgi Djakov FUNCTION(pri_mi2s), 1019*c4f6f9c0SGeorgi Djakov FUNCTION(qua_mi2s), 1020*c4f6f9c0SGeorgi Djakov FUNCTION(sata_act), 1021*c4f6f9c0SGeorgi Djakov FUNCTION(sata_devsleep), 1022*c4f6f9c0SGeorgi Djakov FUNCTION(sata_devsleep_n), 1023*c4f6f9c0SGeorgi Djakov FUNCTION(sd_write), 1024*c4f6f9c0SGeorgi Djakov FUNCTION(sdc_emmc_mode), 1025*c4f6f9c0SGeorgi Djakov FUNCTION(sdc3), 1026*c4f6f9c0SGeorgi Djakov FUNCTION(sdc4), 1027*c4f6f9c0SGeorgi Djakov FUNCTION(sec_mi2s), 1028*c4f6f9c0SGeorgi Djakov FUNCTION(slimbus), 1029*c4f6f9c0SGeorgi Djakov FUNCTION(spdif_tx), 1030*c4f6f9c0SGeorgi Djakov FUNCTION(spkr_i2s), 1031*c4f6f9c0SGeorgi Djakov FUNCTION(spkr_i2s_ws), 1032*c4f6f9c0SGeorgi Djakov FUNCTION(spss_geni), 1033*c4f6f9c0SGeorgi Djakov FUNCTION(ter_mi2s), 1034*c4f6f9c0SGeorgi Djakov FUNCTION(tsif1), 1035*c4f6f9c0SGeorgi Djakov FUNCTION(tsif2), 1036*c4f6f9c0SGeorgi Djakov FUNCTION(uim), 1037*c4f6f9c0SGeorgi Djakov FUNCTION(uim_batt_alarm), 1038*c4f6f9c0SGeorgi Djakov }; 1039*c4f6f9c0SGeorgi Djakov 1040*c4f6f9c0SGeorgi Djakov static const struct msm_pingroup apq8084_groups[] = { 1041*c4f6f9c0SGeorgi Djakov PINGROUP(0, blsp_spi1, blsp_uart1, blsp_uim1, NA, NA, NA, NA), 1042*c4f6f9c0SGeorgi Djakov PINGROUP(1, blsp_spi1, blsp_uart1, blsp_uim1, NA, NA, NA, NA), 1043*c4f6f9c0SGeorgi Djakov PINGROUP(2, blsp_spi1, blsp_uart1, blsp_i2c1, NA, NA, NA, NA), 1044*c4f6f9c0SGeorgi Djakov PINGROUP(3, blsp_spi1, blsp_uart1, blsp_i2c1, NA, NA, NA, NA), 1045*c4f6f9c0SGeorgi Djakov PINGROUP(4, blsp_spi2, blsp_uart2, blsp_uim2, NA, NA, NA, NA), 1046*c4f6f9c0SGeorgi Djakov PINGROUP(5, blsp_spi2, blsp_uart2, blsp_uim2, NA, NA, NA, NA), 1047*c4f6f9c0SGeorgi Djakov PINGROUP(6, blsp_spi2, blsp_uart2, blsp_i2c2, NA, NA, NA, NA), 1048*c4f6f9c0SGeorgi Djakov PINGROUP(7, blsp_spi2, blsp_uart2, blsp_i2c2, NA, NA, NA, NA), 1049*c4f6f9c0SGeorgi Djakov PINGROUP(8, blsp_spi3, blsp_uart3, blsp_uim3, spss_geni, NA, NA, NA), 1050*c4f6f9c0SGeorgi Djakov PINGROUP(9, blsp_spi3, blsp_uim3, blsp_uart3, spss_geni, NA, NA, NA), 1051*c4f6f9c0SGeorgi Djakov PINGROUP(10, blsp_spi3, blsp_uart3, blsp_i2c3, NA, NA, NA, NA), 1052*c4f6f9c0SGeorgi Djakov PINGROUP(11, blsp_spi3, blsp_uart3, blsp_i2c3, NA, NA, NA, NA), 1053*c4f6f9c0SGeorgi Djakov PINGROUP(12, mdp_vsync, NA, NA, NA, NA, NA, NA), 1054*c4f6f9c0SGeorgi Djakov PINGROUP(13, mdp_vsync, NA, NA, NA, NA, NA, NA), 1055*c4f6f9c0SGeorgi Djakov PINGROUP(14, mdp_vsync, NA, NA, NA, NA, NA, NA), 1056*c4f6f9c0SGeorgi Djakov PINGROUP(15, cam_mclk0, NA, NA, NA, NA, NA, NA), 1057*c4f6f9c0SGeorgi Djakov PINGROUP(16, cam_mclk1, NA, NA, NA, NA, NA, NA), 1058*c4f6f9c0SGeorgi Djakov PINGROUP(17, cam_mclk2, NA, NA, NA, NA, NA, NA), 1059*c4f6f9c0SGeorgi Djakov PINGROUP(18, cam_mclk3, NA, NA, NA, NA, NA, NA), 1060*c4f6f9c0SGeorgi Djakov PINGROUP(19, cci_i2c0, NA, NA, NA, NA, NA, NA), 1061*c4f6f9c0SGeorgi Djakov PINGROUP(20, cci_i2c0, NA, NA, NA, NA, NA, NA), 1062*c4f6f9c0SGeorgi Djakov PINGROUP(21, cci_i2c1, NA, NA, NA, NA, NA, NA), 1063*c4f6f9c0SGeorgi Djakov PINGROUP(22, cci_i2c1, NA, NA, NA, NA, NA, NA), 1064*c4f6f9c0SGeorgi Djakov PINGROUP(23, cci_timer0, NA, NA, NA, NA, NA, NA), 1065*c4f6f9c0SGeorgi Djakov PINGROUP(24, cci_timer1, NA, NA, NA, NA, NA, NA), 1066*c4f6f9c0SGeorgi Djakov PINGROUP(25, cci_timer2, gp0_clk, NA, NA, NA, NA, NA), 1067*c4f6f9c0SGeorgi Djakov PINGROUP(26, cci_timer3, cci_async, gp1_clk, NA, NA, NA, NA), 1068*c4f6f9c0SGeorgi Djakov PINGROUP(27, blsp_spi4, blsp_uart4, blsp_uim4, NA, NA, NA, NA), 1069*c4f6f9c0SGeorgi Djakov PINGROUP(28, blsp_spi4, blsp_uart4, blsp_uim4, NA, NA, NA, NA), 1070*c4f6f9c0SGeorgi Djakov PINGROUP(29, blsp_spi4, blsp_uart4, blsp_i2c4, gp_mn, NA, NA, NA), 1071*c4f6f9c0SGeorgi Djakov PINGROUP(30, blsp_spi4, blsp_uart4, blsp_i2c4, NA, NA, NA, NA), 1072*c4f6f9c0SGeorgi Djakov PINGROUP(31, hdmi_cec, NA, NA, NA, NA, NA, NA), 1073*c4f6f9c0SGeorgi Djakov PINGROUP(32, hdmi_ddc, NA, NA, NA, NA, NA, NA), 1074*c4f6f9c0SGeorgi Djakov PINGROUP(33, hdmi_ddc, NA, NA, NA, NA, NA, NA), 1075*c4f6f9c0SGeorgi Djakov PINGROUP(34, hdmi_hpd, NA, adsp_ext, NA, NA, NA, NA), 1076*c4f6f9c0SGeorgi Djakov PINGROUP(35, NA, NA, NA, NA, NA, NA, NA), 1077*c4f6f9c0SGeorgi Djakov PINGROUP(36, NA, NA, NA, NA, NA, NA, NA), 1078*c4f6f9c0SGeorgi Djakov PINGROUP(37, gcc_gp1, NA, NA, NA, NA, NA, NA), 1079*c4f6f9c0SGeorgi Djakov PINGROUP(38, gcc_gp2, NA, NA, NA, NA, NA, NA), 1080*c4f6f9c0SGeorgi Djakov PINGROUP(39, blsp_spi5, blsp_uart5, blsp_uim5, NA, NA, NA, NA), 1081*c4f6f9c0SGeorgi Djakov PINGROUP(40, blsp_spi5, blsp_uart5, blsp_uim5, NA, NA, NA, NA), 1082*c4f6f9c0SGeorgi Djakov PINGROUP(41, blsp_spi5, blsp_uart5, blsp_i2c5, NA, NA, NA, NA), 1083*c4f6f9c0SGeorgi Djakov PINGROUP(42, blsp_spi5, blsp_uart5, blsp_i2c5, NA, NA, NA, NA), 1084*c4f6f9c0SGeorgi Djakov PINGROUP(43, blsp_spi6, blsp_uart6, blsp_uim6, NA, NA, NA, NA), 1085*c4f6f9c0SGeorgi Djakov PINGROUP(44, blsp_spi6, blsp_uart6, blsp_uim6, NA, NA, NA, NA), 1086*c4f6f9c0SGeorgi Djakov PINGROUP(45, blsp_spi6, blsp_uart6, blsp_i2c6, NA, NA, NA, NA), 1087*c4f6f9c0SGeorgi Djakov PINGROUP(46, blsp_spi6, blsp_uart6, blsp_i2c6, NA, NA, NA, NA), 1088*c4f6f9c0SGeorgi Djakov PINGROUP(47, blsp_spi12, blsp_uart12, blsp_uim12, NA, NA, NA, NA), 1089*c4f6f9c0SGeorgi Djakov PINGROUP(48, blsp_spi12, blsp_uart12, blsp_uim12, gp_pdm0, NA, NA, NA), 1090*c4f6f9c0SGeorgi Djakov PINGROUP(49, blsp_spi12, blsp_uart12, blsp_i2c12, NA, NA, NA, NA), 1091*c4f6f9c0SGeorgi Djakov PINGROUP(50, blsp_spi12, blsp_uart12, blsp_i2c12, NA, NA, NA, NA), 1092*c4f6f9c0SGeorgi Djakov PINGROUP(51, blsp_spi8, blsp_uart8, blsp_uim8, NA, NA, NA, NA), 1093*c4f6f9c0SGeorgi Djakov PINGROUP(52, blsp_spi8, blsp_uart8, blsp_uim8, NA, NA, NA, NA), 1094*c4f6f9c0SGeorgi Djakov PINGROUP(53, blsp_spi8, blsp_uart8, blsp_i2c8, NA, NA, NA, NA), 1095*c4f6f9c0SGeorgi Djakov PINGROUP(54, blsp_spi8, blsp_uart8, blsp_i2c8, NA, NA, NA, NA), 1096*c4f6f9c0SGeorgi Djakov PINGROUP(55, blsp_spi9, blsp_uart9, blsp_uim9, NA, NA, NA, NA), 1097*c4f6f9c0SGeorgi Djakov PINGROUP(56, blsp_spi9, blsp_uart9, blsp_uim9, NA, NA, NA, NA), 1098*c4f6f9c0SGeorgi Djakov PINGROUP(57, blsp_spi9, blsp_uart9, blsp_i2c9, NA, NA, NA, NA), 1099*c4f6f9c0SGeorgi Djakov PINGROUP(58, blsp_spi9, blsp_uart9, blsp_i2c9, NA, NA, NA, NA), 1100*c4f6f9c0SGeorgi Djakov PINGROUP(59, blsp_spi10, blsp_uart10, blsp_uim10, NA, NA, NA, NA), 1101*c4f6f9c0SGeorgi Djakov PINGROUP(60, blsp_spi10, blsp_uart10, blsp_uim10, NA, NA, NA, NA), 1102*c4f6f9c0SGeorgi Djakov PINGROUP(61, blsp_spi10, blsp_uart10, blsp_i2c10, NA, NA, NA, NA), 1103*c4f6f9c0SGeorgi Djakov PINGROUP(62, blsp_spi10, blsp_uart10, blsp_i2c10, NA, NA, NA, NA), 1104*c4f6f9c0SGeorgi Djakov PINGROUP(63, blsp_spi11, blsp_uart11, blsp_uim11, NA, NA, NA, NA), 1105*c4f6f9c0SGeorgi Djakov PINGROUP(64, blsp_spi11, blsp_uart11, blsp_uim11, NA, NA, NA, NA), 1106*c4f6f9c0SGeorgi Djakov PINGROUP(65, blsp_spi11, blsp_uart11, blsp_i2c11, NA, NA, NA, NA), 1107*c4f6f9c0SGeorgi Djakov PINGROUP(66, blsp_spi11, blsp_uart11, blsp_i2c11, NA, NA, NA, NA), 1108*c4f6f9c0SGeorgi Djakov PINGROUP(67, sdc3, blsp_spi3_cs1, NA, NA, NA, NA, NA), 1109*c4f6f9c0SGeorgi Djakov PINGROUP(68, sdc3, pci_e0, NA, NA, NA, NA, NA), 1110*c4f6f9c0SGeorgi Djakov PINGROUP(69, sdc3, NA, NA, NA, NA, NA, NA), 1111*c4f6f9c0SGeorgi Djakov PINGROUP(70, sdc3, pci_e0_n, pci_e0, NA, NA, NA, NA), 1112*c4f6f9c0SGeorgi Djakov PINGROUP(71, sdc3, blsp_spi3_cs2, NA, NA, NA, NA, NA), 1113*c4f6f9c0SGeorgi Djakov PINGROUP(72, sdc3, blsp_spi3_cs3, NA, NA, NA, NA, NA), 1114*c4f6f9c0SGeorgi Djakov PINGROUP(73, NA, NA, NA, NA, NA, NA, NA), 1115*c4f6f9c0SGeorgi Djakov PINGROUP(74, NA, NA, NA, NA, NA, NA, NA), 1116*c4f6f9c0SGeorgi Djakov PINGROUP(75, sd_write, NA, NA, NA, NA, NA, NA), 1117*c4f6f9c0SGeorgi Djakov PINGROUP(76, pri_mi2s, NA, NA, NA, NA, NA, NA), 1118*c4f6f9c0SGeorgi Djakov PINGROUP(77, pri_mi2s, NA, NA, NA, NA, NA, NA), 1119*c4f6f9c0SGeorgi Djakov PINGROUP(78, pri_mi2s, NA, NA, NA, NA, NA, NA), 1120*c4f6f9c0SGeorgi Djakov PINGROUP(79, pri_mi2s, NA, NA, NA, NA, NA, NA), 1121*c4f6f9c0SGeorgi Djakov PINGROUP(80, pri_mi2s, NA, NA, NA, NA, NA, NA), 1122*c4f6f9c0SGeorgi Djakov PINGROUP(81, sec_mi2s, NA, NA, NA, NA, NA, NA), 1123*c4f6f9c0SGeorgi Djakov PINGROUP(82, sec_mi2s, sdc4, tsif1, NA, NA, NA, NA), 1124*c4f6f9c0SGeorgi Djakov PINGROUP(83, sec_mi2s, sdc4, tsif1, NA, NA, NA, gp_pdm0), 1125*c4f6f9c0SGeorgi Djakov PINGROUP(84, sec_mi2s, sdc4, tsif1, NA, NA, NA, gp_pdm1), 1126*c4f6f9c0SGeorgi Djakov PINGROUP(85, sec_mi2s, sdc4, tsif1, NA, gp_pdm2, NA, NA), 1127*c4f6f9c0SGeorgi Djakov PINGROUP(86, ter_mi2s, sdc4, tsif1, NA, NA, NA, gcc_gp3), 1128*c4f6f9c0SGeorgi Djakov PINGROUP(87, ter_mi2s, NA, NA, NA, NA, NA, NA), 1129*c4f6f9c0SGeorgi Djakov PINGROUP(88, ter_mi2s, NA, NA, NA, NA, NA, NA), 1130*c4f6f9c0SGeorgi Djakov PINGROUP(89, ter_mi2s, NA, NA, NA, NA, NA, NA), 1131*c4f6f9c0SGeorgi Djakov PINGROUP(90, ter_mi2s, NA, NA, NA, NA, NA, NA), 1132*c4f6f9c0SGeorgi Djakov PINGROUP(91, qua_mi2s, sdc4, tsif2, NA, NA, NA, NA), 1133*c4f6f9c0SGeorgi Djakov PINGROUP(92, qua_mi2s, NA, NA, NA, NA, NA, NA), 1134*c4f6f9c0SGeorgi Djakov PINGROUP(93, qua_mi2s, NA, NA, NA, NA, NA, NA), 1135*c4f6f9c0SGeorgi Djakov PINGROUP(94, qua_mi2s, NA, NA, NA, NA, NA, NA), 1136*c4f6f9c0SGeorgi Djakov PINGROUP(95, qua_mi2s, sdc4, tsif2, NA, NA, NA, gcc_gp1), 1137*c4f6f9c0SGeorgi Djakov PINGROUP(96, qua_mi2s, sdc4, tsif2, NA, NA, NA, gcc_gp2), 1138*c4f6f9c0SGeorgi Djakov PINGROUP(97, qua_mi2s, sdc4, tsif2, NA, gcc_gp3, NA, NA), 1139*c4f6f9c0SGeorgi Djakov PINGROUP(98, slimbus, spkr_i2s, NA, NA, NA, NA, NA), 1140*c4f6f9c0SGeorgi Djakov PINGROUP(99, slimbus, spkr_i2s, NA, NA, NA, NA, NA), 1141*c4f6f9c0SGeorgi Djakov PINGROUP(100, audio_ref, spkr_i2s, NA, NA, NA, NA, NA), 1142*c4f6f9c0SGeorgi Djakov PINGROUP(101, sdc4, tsif2, gp_pdm1, NA, NA, NA, NA), 1143*c4f6f9c0SGeorgi Djakov PINGROUP(102, uim_batt_alarm, NA, NA, NA, NA, NA, NA), 1144*c4f6f9c0SGeorgi Djakov PINGROUP(103, edp_hpd, NA, NA, NA, NA, NA, NA), 1145*c4f6f9c0SGeorgi Djakov PINGROUP(104, spkr_i2s, NA, NA, NA, NA, NA, NA), 1146*c4f6f9c0SGeorgi Djakov PINGROUP(105, NA, NA, NA, NA, NA, NA, NA), 1147*c4f6f9c0SGeorgi Djakov PINGROUP(106, blsp_spi10_cs1, NA, NA, NA, NA, NA, NA), 1148*c4f6f9c0SGeorgi Djakov PINGROUP(107, NA, NA, NA, NA, NA, NA, NA), 1149*c4f6f9c0SGeorgi Djakov PINGROUP(108, NA, NA, NA, NA, NA, NA, NA), 1150*c4f6f9c0SGeorgi Djakov PINGROUP(109, NA, NA, NA, NA, NA, NA, NA), 1151*c4f6f9c0SGeorgi Djakov PINGROUP(110, gp_pdm2, NA, NA, NA, NA, NA, NA), 1152*c4f6f9c0SGeorgi Djakov PINGROUP(111, blsp_spi10_cs2, NA, NA, NA, NA, NA, NA), 1153*c4f6f9c0SGeorgi Djakov PINGROUP(112, NA, NA, NA, NA, NA, NA, NA), 1154*c4f6f9c0SGeorgi Djakov PINGROUP(113, NA, NA, NA, NA, NA, NA, NA), 1155*c4f6f9c0SGeorgi Djakov PINGROUP(114, NA, NA, NA, NA, NA, NA, NA), 1156*c4f6f9c0SGeorgi Djakov PINGROUP(115, NA, NA, NA, NA, NA, NA, NA), 1157*c4f6f9c0SGeorgi Djakov PINGROUP(116, blsp_spi1_cs1, NA, NA, NA, NA, NA, NA), 1158*c4f6f9c0SGeorgi Djakov PINGROUP(117, blsp_spi1_cs2, NA, NA, NA, NA, NA, NA), 1159*c4f6f9c0SGeorgi Djakov PINGROUP(118, blsp_spi1_cs3, NA, NA, NA, NA, NA, NA), 1160*c4f6f9c0SGeorgi Djakov PINGROUP(119, cci_timer4, cci_async, sata_devsleep, sata_devsleep_n, NA, NA, NA), 1161*c4f6f9c0SGeorgi Djakov PINGROUP(120, cci_async, NA, NA, NA, NA, NA, NA), 1162*c4f6f9c0SGeorgi Djakov PINGROUP(121, NA, NA, NA, NA, NA, NA, NA), 1163*c4f6f9c0SGeorgi Djakov PINGROUP(122, NA, NA, NA, NA, NA, NA, NA), 1164*c4f6f9c0SGeorgi Djakov PINGROUP(123, hdmi_dtest, NA, NA, NA, NA, NA, NA), 1165*c4f6f9c0SGeorgi Djakov PINGROUP(124, spdif_tx, ldo_en, NA, NA, NA, NA, NA), 1166*c4f6f9c0SGeorgi Djakov PINGROUP(125, ldo_update, hdmi_rcv, NA, NA, NA, NA, NA), 1167*c4f6f9c0SGeorgi Djakov PINGROUP(126, gcc_vtt, NA, NA, NA, NA, NA, NA), 1168*c4f6f9c0SGeorgi Djakov PINGROUP(127, gcc_obt, NA, NA, NA, NA, NA, NA), 1169*c4f6f9c0SGeorgi Djakov PINGROUP(128, blsp_spi10_cs3, NA, NA, NA, NA, NA, NA), 1170*c4f6f9c0SGeorgi Djakov PINGROUP(129, sata_act, NA, NA, NA, NA, NA, NA), 1171*c4f6f9c0SGeorgi Djakov PINGROUP(130, uim, blsp_spi7, blsp_uart7, blsp_uim7, NA, NA, NA), 1172*c4f6f9c0SGeorgi Djakov PINGROUP(131, uim, blsp_spi7, blsp_uart7, blsp_uim7, NA, NA, NA), 1173*c4f6f9c0SGeorgi Djakov PINGROUP(132, uim, blsp_spi7, blsp_uart7, blsp_i2c7, NA, NA, NA), 1174*c4f6f9c0SGeorgi Djakov PINGROUP(133, uim, blsp_spi7, blsp_uart7, blsp_i2c7, NA, NA, NA), 1175*c4f6f9c0SGeorgi Djakov PINGROUP(134, hsic, NA, NA, NA, NA, NA, NA), 1176*c4f6f9c0SGeorgi Djakov PINGROUP(135, hsic, NA, NA, NA, NA, NA, NA), 1177*c4f6f9c0SGeorgi Djakov PINGROUP(136, spdif_tx, NA, NA, NA, NA, NA, NA), 1178*c4f6f9c0SGeorgi Djakov PINGROUP(137, NA, NA, NA, NA, NA, NA, NA), 1179*c4f6f9c0SGeorgi Djakov PINGROUP(138, NA, NA, NA, NA, NA, NA, NA), 1180*c4f6f9c0SGeorgi Djakov PINGROUP(139, NA, NA, NA, NA, NA, NA, NA), 1181*c4f6f9c0SGeorgi Djakov PINGROUP(140, pci_e1_rst_n, pci_e1_rst, NA, NA, NA, NA, NA), 1182*c4f6f9c0SGeorgi Djakov PINGROUP(141, pci_e1_clkreq_n, NA, NA, NA, NA, NA, NA), 1183*c4f6f9c0SGeorgi Djakov PINGROUP(142, spdif_tx, NA, NA, NA, NA, NA, NA), 1184*c4f6f9c0SGeorgi Djakov PINGROUP(143, NA, NA, NA, NA, NA, NA, NA), 1185*c4f6f9c0SGeorgi Djakov PINGROUP(144, NA, NA, NA, NA, NA, NA, NA), 1186*c4f6f9c0SGeorgi Djakov PINGROUP(145, NA, NA, NA, NA, NA, NA, NA), 1187*c4f6f9c0SGeorgi Djakov PINGROUP(146, sdc_emmc_mode, NA, NA, NA, NA, NA, NA), 1188*c4f6f9c0SGeorgi Djakov 1189*c4f6f9c0SGeorgi Djakov SDC_PINGROUP(sdc1_clk, 0x2044, 13, 6), 1190*c4f6f9c0SGeorgi Djakov SDC_PINGROUP(sdc1_cmd, 0x2044, 11, 3), 1191*c4f6f9c0SGeorgi Djakov SDC_PINGROUP(sdc1_data, 0x2044, 9, 0), 1192*c4f6f9c0SGeorgi Djakov SDC_PINGROUP(sdc2_clk, 0x2048, 14, 6), 1193*c4f6f9c0SGeorgi Djakov SDC_PINGROUP(sdc2_cmd, 0x2048, 11, 3), 1194*c4f6f9c0SGeorgi Djakov SDC_PINGROUP(sdc2_data, 0x2048, 9, 0), 1195*c4f6f9c0SGeorgi Djakov }; 1196*c4f6f9c0SGeorgi Djakov 1197*c4f6f9c0SGeorgi Djakov #define NUM_GPIO_PINGROUPS 147 1198*c4f6f9c0SGeorgi Djakov 1199*c4f6f9c0SGeorgi Djakov static const struct msm_pinctrl_soc_data apq8084_pinctrl = { 1200*c4f6f9c0SGeorgi Djakov .pins = apq8084_pins, 1201*c4f6f9c0SGeorgi Djakov .npins = ARRAY_SIZE(apq8084_pins), 1202*c4f6f9c0SGeorgi Djakov .functions = apq8084_functions, 1203*c4f6f9c0SGeorgi Djakov .nfunctions = ARRAY_SIZE(apq8084_functions), 1204*c4f6f9c0SGeorgi Djakov .groups = apq8084_groups, 1205*c4f6f9c0SGeorgi Djakov .ngroups = ARRAY_SIZE(apq8084_groups), 1206*c4f6f9c0SGeorgi Djakov .ngpios = NUM_GPIO_PINGROUPS, 1207*c4f6f9c0SGeorgi Djakov }; 1208*c4f6f9c0SGeorgi Djakov 1209*c4f6f9c0SGeorgi Djakov static int apq8084_pinctrl_probe(struct platform_device *pdev) 1210*c4f6f9c0SGeorgi Djakov { 1211*c4f6f9c0SGeorgi Djakov return msm_pinctrl_probe(pdev, &apq8084_pinctrl); 1212*c4f6f9c0SGeorgi Djakov } 1213*c4f6f9c0SGeorgi Djakov 1214*c4f6f9c0SGeorgi Djakov static const struct of_device_id apq8084_pinctrl_of_match[] = { 1215*c4f6f9c0SGeorgi Djakov { .compatible = "qcom,apq8084-pinctrl", }, 1216*c4f6f9c0SGeorgi Djakov { }, 1217*c4f6f9c0SGeorgi Djakov }; 1218*c4f6f9c0SGeorgi Djakov 1219*c4f6f9c0SGeorgi Djakov static struct platform_driver apq8084_pinctrl_driver = { 1220*c4f6f9c0SGeorgi Djakov .driver = { 1221*c4f6f9c0SGeorgi Djakov .name = "apq8084-pinctrl", 1222*c4f6f9c0SGeorgi Djakov .owner = THIS_MODULE, 1223*c4f6f9c0SGeorgi Djakov .of_match_table = apq8084_pinctrl_of_match, 1224*c4f6f9c0SGeorgi Djakov }, 1225*c4f6f9c0SGeorgi Djakov .probe = apq8084_pinctrl_probe, 1226*c4f6f9c0SGeorgi Djakov .remove = msm_pinctrl_remove, 1227*c4f6f9c0SGeorgi Djakov }; 1228*c4f6f9c0SGeorgi Djakov 1229*c4f6f9c0SGeorgi Djakov static int __init apq8084_pinctrl_init(void) 1230*c4f6f9c0SGeorgi Djakov { 1231*c4f6f9c0SGeorgi Djakov return platform_driver_register(&apq8084_pinctrl_driver); 1232*c4f6f9c0SGeorgi Djakov } 1233*c4f6f9c0SGeorgi Djakov arch_initcall(apq8084_pinctrl_init); 1234*c4f6f9c0SGeorgi Djakov 1235*c4f6f9c0SGeorgi Djakov static void __exit apq8084_pinctrl_exit(void) 1236*c4f6f9c0SGeorgi Djakov { 1237*c4f6f9c0SGeorgi Djakov platform_driver_unregister(&apq8084_pinctrl_driver); 1238*c4f6f9c0SGeorgi Djakov } 1239*c4f6f9c0SGeorgi Djakov module_exit(apq8084_pinctrl_exit); 1240*c4f6f9c0SGeorgi Djakov 1241*c4f6f9c0SGeorgi Djakov MODULE_DESCRIPTION("Qualcomm APQ8084 pinctrl driver"); 1242*c4f6f9c0SGeorgi Djakov MODULE_LICENSE("GPL v2"); 1243*c4f6f9c0SGeorgi Djakov MODULE_DEVICE_TABLE(of, apq8084_pinctrl_of_match); 1244