1e260d2bbSVaradarajan Narayanan /* 2e260d2bbSVaradarajan Narayanan * Copyright (c) 2015, The Linux Foundation. All rights reserved. 3e260d2bbSVaradarajan Narayanan * 4e260d2bbSVaradarajan Narayanan * This program is free software; you can redistribute it and/or modify 5e260d2bbSVaradarajan Narayanan * it under the terms of the GNU General Public License version 2 and 6e260d2bbSVaradarajan Narayanan * only version 2 as published by the Free Software Foundation. 7e260d2bbSVaradarajan Narayanan * 8e260d2bbSVaradarajan Narayanan * This program is distributed in the hope that it will be useful, 9e260d2bbSVaradarajan Narayanan * but WITHOUT ANY WARRANTY; without even the implied warranty of 10e260d2bbSVaradarajan Narayanan * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11e260d2bbSVaradarajan Narayanan * GNU General Public License for more details. 12e260d2bbSVaradarajan Narayanan */ 13e260d2bbSVaradarajan Narayanan 14e260d2bbSVaradarajan Narayanan #include <linux/module.h> 15e260d2bbSVaradarajan Narayanan #include <linux/of.h> 16e260d2bbSVaradarajan Narayanan #include <linux/platform_device.h> 17e260d2bbSVaradarajan Narayanan #include <linux/pinctrl/pinctrl.h> 18e260d2bbSVaradarajan Narayanan 19e260d2bbSVaradarajan Narayanan #include "pinctrl-msm.h" 20e260d2bbSVaradarajan Narayanan 21e260d2bbSVaradarajan Narayanan static const struct pinctrl_pin_desc ipq4019_pins[] = { 22e260d2bbSVaradarajan Narayanan PINCTRL_PIN(0, "GPIO_0"), 23e260d2bbSVaradarajan Narayanan PINCTRL_PIN(1, "GPIO_1"), 24e260d2bbSVaradarajan Narayanan PINCTRL_PIN(2, "GPIO_2"), 25e260d2bbSVaradarajan Narayanan PINCTRL_PIN(3, "GPIO_3"), 26e260d2bbSVaradarajan Narayanan PINCTRL_PIN(4, "GPIO_4"), 27e260d2bbSVaradarajan Narayanan PINCTRL_PIN(5, "GPIO_5"), 28e260d2bbSVaradarajan Narayanan PINCTRL_PIN(6, "GPIO_6"), 29e260d2bbSVaradarajan Narayanan PINCTRL_PIN(7, "GPIO_7"), 30e260d2bbSVaradarajan Narayanan PINCTRL_PIN(8, "GPIO_8"), 31e260d2bbSVaradarajan Narayanan PINCTRL_PIN(9, "GPIO_9"), 32e260d2bbSVaradarajan Narayanan PINCTRL_PIN(10, "GPIO_10"), 33e260d2bbSVaradarajan Narayanan PINCTRL_PIN(11, "GPIO_11"), 34e260d2bbSVaradarajan Narayanan PINCTRL_PIN(12, "GPIO_12"), 35e260d2bbSVaradarajan Narayanan PINCTRL_PIN(13, "GPIO_13"), 36e260d2bbSVaradarajan Narayanan PINCTRL_PIN(14, "GPIO_14"), 37e260d2bbSVaradarajan Narayanan PINCTRL_PIN(15, "GPIO_15"), 38e260d2bbSVaradarajan Narayanan PINCTRL_PIN(16, "GPIO_16"), 39e260d2bbSVaradarajan Narayanan PINCTRL_PIN(17, "GPIO_17"), 40e260d2bbSVaradarajan Narayanan PINCTRL_PIN(18, "GPIO_18"), 41e260d2bbSVaradarajan Narayanan PINCTRL_PIN(19, "GPIO_19"), 42e260d2bbSVaradarajan Narayanan PINCTRL_PIN(20, "GPIO_20"), 43e260d2bbSVaradarajan Narayanan PINCTRL_PIN(21, "GPIO_21"), 44e260d2bbSVaradarajan Narayanan PINCTRL_PIN(22, "GPIO_22"), 45e260d2bbSVaradarajan Narayanan PINCTRL_PIN(23, "GPIO_23"), 46e260d2bbSVaradarajan Narayanan PINCTRL_PIN(24, "GPIO_24"), 47e260d2bbSVaradarajan Narayanan PINCTRL_PIN(25, "GPIO_25"), 48e260d2bbSVaradarajan Narayanan PINCTRL_PIN(26, "GPIO_26"), 49e260d2bbSVaradarajan Narayanan PINCTRL_PIN(27, "GPIO_27"), 50e260d2bbSVaradarajan Narayanan PINCTRL_PIN(28, "GPIO_28"), 51e260d2bbSVaradarajan Narayanan PINCTRL_PIN(29, "GPIO_29"), 52e260d2bbSVaradarajan Narayanan PINCTRL_PIN(30, "GPIO_30"), 53e260d2bbSVaradarajan Narayanan PINCTRL_PIN(31, "GPIO_31"), 54e260d2bbSVaradarajan Narayanan PINCTRL_PIN(32, "GPIO_32"), 55e260d2bbSVaradarajan Narayanan PINCTRL_PIN(33, "GPIO_33"), 56e260d2bbSVaradarajan Narayanan PINCTRL_PIN(34, "GPIO_34"), 57e260d2bbSVaradarajan Narayanan PINCTRL_PIN(35, "GPIO_35"), 58e260d2bbSVaradarajan Narayanan PINCTRL_PIN(36, "GPIO_36"), 59e260d2bbSVaradarajan Narayanan PINCTRL_PIN(37, "GPIO_37"), 60e260d2bbSVaradarajan Narayanan PINCTRL_PIN(38, "GPIO_38"), 61e260d2bbSVaradarajan Narayanan PINCTRL_PIN(39, "GPIO_39"), 62e260d2bbSVaradarajan Narayanan PINCTRL_PIN(40, "GPIO_40"), 63e260d2bbSVaradarajan Narayanan PINCTRL_PIN(41, "GPIO_41"), 64e260d2bbSVaradarajan Narayanan PINCTRL_PIN(42, "GPIO_42"), 65e260d2bbSVaradarajan Narayanan PINCTRL_PIN(43, "GPIO_43"), 66e260d2bbSVaradarajan Narayanan PINCTRL_PIN(44, "GPIO_44"), 67e260d2bbSVaradarajan Narayanan PINCTRL_PIN(45, "GPIO_45"), 68e260d2bbSVaradarajan Narayanan PINCTRL_PIN(46, "GPIO_46"), 69e260d2bbSVaradarajan Narayanan PINCTRL_PIN(47, "GPIO_47"), 70e260d2bbSVaradarajan Narayanan PINCTRL_PIN(48, "GPIO_48"), 71e260d2bbSVaradarajan Narayanan PINCTRL_PIN(49, "GPIO_49"), 72e260d2bbSVaradarajan Narayanan PINCTRL_PIN(50, "GPIO_50"), 73e260d2bbSVaradarajan Narayanan PINCTRL_PIN(51, "GPIO_51"), 74e260d2bbSVaradarajan Narayanan PINCTRL_PIN(52, "GPIO_52"), 75e260d2bbSVaradarajan Narayanan PINCTRL_PIN(53, "GPIO_53"), 76e260d2bbSVaradarajan Narayanan PINCTRL_PIN(54, "GPIO_54"), 77e260d2bbSVaradarajan Narayanan PINCTRL_PIN(55, "GPIO_55"), 78e260d2bbSVaradarajan Narayanan PINCTRL_PIN(56, "GPIO_56"), 79e260d2bbSVaradarajan Narayanan PINCTRL_PIN(57, "GPIO_57"), 80e260d2bbSVaradarajan Narayanan PINCTRL_PIN(58, "GPIO_58"), 81e260d2bbSVaradarajan Narayanan PINCTRL_PIN(59, "GPIO_59"), 82e260d2bbSVaradarajan Narayanan PINCTRL_PIN(60, "GPIO_60"), 83e260d2bbSVaradarajan Narayanan PINCTRL_PIN(61, "GPIO_61"), 84e260d2bbSVaradarajan Narayanan PINCTRL_PIN(62, "GPIO_62"), 85e260d2bbSVaradarajan Narayanan PINCTRL_PIN(63, "GPIO_63"), 86e260d2bbSVaradarajan Narayanan PINCTRL_PIN(64, "GPIO_64"), 87e260d2bbSVaradarajan Narayanan PINCTRL_PIN(65, "GPIO_65"), 88e260d2bbSVaradarajan Narayanan PINCTRL_PIN(66, "GPIO_66"), 89e260d2bbSVaradarajan Narayanan PINCTRL_PIN(67, "GPIO_67"), 90e260d2bbSVaradarajan Narayanan PINCTRL_PIN(68, "GPIO_68"), 91e260d2bbSVaradarajan Narayanan PINCTRL_PIN(69, "GPIO_69"), 92e260d2bbSVaradarajan Narayanan PINCTRL_PIN(70, "GPIO_70"), 93e260d2bbSVaradarajan Narayanan PINCTRL_PIN(71, "GPIO_71"), 94e260d2bbSVaradarajan Narayanan PINCTRL_PIN(72, "GPIO_72"), 95e260d2bbSVaradarajan Narayanan PINCTRL_PIN(73, "GPIO_73"), 96e260d2bbSVaradarajan Narayanan PINCTRL_PIN(74, "GPIO_74"), 97e260d2bbSVaradarajan Narayanan PINCTRL_PIN(75, "GPIO_75"), 98e260d2bbSVaradarajan Narayanan PINCTRL_PIN(76, "GPIO_76"), 99e260d2bbSVaradarajan Narayanan PINCTRL_PIN(77, "GPIO_77"), 100e260d2bbSVaradarajan Narayanan PINCTRL_PIN(78, "GPIO_78"), 101e260d2bbSVaradarajan Narayanan PINCTRL_PIN(79, "GPIO_79"), 102e260d2bbSVaradarajan Narayanan PINCTRL_PIN(80, "GPIO_80"), 103e260d2bbSVaradarajan Narayanan PINCTRL_PIN(81, "GPIO_81"), 104e260d2bbSVaradarajan Narayanan PINCTRL_PIN(82, "GPIO_82"), 105e260d2bbSVaradarajan Narayanan PINCTRL_PIN(83, "GPIO_83"), 106e260d2bbSVaradarajan Narayanan PINCTRL_PIN(84, "GPIO_84"), 107e260d2bbSVaradarajan Narayanan PINCTRL_PIN(85, "GPIO_85"), 108e260d2bbSVaradarajan Narayanan PINCTRL_PIN(86, "GPIO_86"), 109e260d2bbSVaradarajan Narayanan PINCTRL_PIN(87, "GPIO_87"), 110e260d2bbSVaradarajan Narayanan PINCTRL_PIN(88, "GPIO_88"), 111e260d2bbSVaradarajan Narayanan PINCTRL_PIN(89, "GPIO_89"), 112e260d2bbSVaradarajan Narayanan PINCTRL_PIN(90, "GPIO_90"), 113e260d2bbSVaradarajan Narayanan PINCTRL_PIN(91, "GPIO_91"), 114e260d2bbSVaradarajan Narayanan PINCTRL_PIN(92, "GPIO_92"), 115e260d2bbSVaradarajan Narayanan PINCTRL_PIN(93, "GPIO_93"), 116e260d2bbSVaradarajan Narayanan PINCTRL_PIN(94, "GPIO_94"), 117e260d2bbSVaradarajan Narayanan PINCTRL_PIN(95, "GPIO_95"), 118e260d2bbSVaradarajan Narayanan PINCTRL_PIN(96, "GPIO_96"), 119e260d2bbSVaradarajan Narayanan PINCTRL_PIN(97, "GPIO_97"), 120e260d2bbSVaradarajan Narayanan PINCTRL_PIN(98, "GPIO_98"), 121e260d2bbSVaradarajan Narayanan PINCTRL_PIN(99, "GPIO_99"), 122e260d2bbSVaradarajan Narayanan }; 123e260d2bbSVaradarajan Narayanan 124e260d2bbSVaradarajan Narayanan #define DECLARE_QCA_GPIO_PINS(pin) \ 125e260d2bbSVaradarajan Narayanan static const unsigned int gpio##pin##_pins[] = { pin } 126e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(0); 127e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(1); 128e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(2); 129e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(3); 130e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(4); 131e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(5); 132e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(6); 133e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(7); 134e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(8); 135e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(9); 136e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(10); 137e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(11); 138e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(12); 139e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(13); 140e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(14); 141e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(15); 142e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(16); 143e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(17); 144e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(18); 145e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(19); 146e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(20); 147e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(21); 148e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(22); 149e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(23); 150e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(24); 151e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(25); 152e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(26); 153e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(27); 154e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(28); 155e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(29); 156e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(30); 157e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(31); 158e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(32); 159e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(33); 160e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(34); 161e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(35); 162e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(36); 163e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(37); 164e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(38); 165e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(39); 166e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(40); 167e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(41); 168e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(42); 169e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(43); 170e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(44); 171e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(45); 172e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(46); 173e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(47); 174e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(48); 175e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(49); 176e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(50); 177e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(51); 178e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(52); 179e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(53); 180e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(54); 181e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(55); 182e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(56); 183e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(57); 184e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(58); 185e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(59); 186e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(60); 187e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(61); 188e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(62); 189e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(63); 190e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(64); 191e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(65); 192e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(66); 193e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(67); 194e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(68); 195e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(69); 196e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(70); 197e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(71); 198e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(72); 199e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(73); 200e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(74); 201e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(75); 202e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(76); 203e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(77); 204e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(78); 205e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(79); 206e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(80); 207e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(81); 208e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(82); 209e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(83); 210e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(84); 211e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(85); 212e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(86); 213e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(87); 214e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(88); 215e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(89); 216e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(90); 217e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(91); 218e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(92); 219e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(93); 220e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(94); 221e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(95); 222e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(96); 223e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(97); 224e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(98); 225e260d2bbSVaradarajan Narayanan DECLARE_QCA_GPIO_PINS(99); 226e260d2bbSVaradarajan Narayanan 227e260d2bbSVaradarajan Narayanan #define FUNCTION(fname) \ 228e260d2bbSVaradarajan Narayanan [qca_mux_##fname] = { \ 229e260d2bbSVaradarajan Narayanan .name = #fname, \ 230e260d2bbSVaradarajan Narayanan .groups = fname##_groups, \ 231e260d2bbSVaradarajan Narayanan .ngroups = ARRAY_SIZE(fname##_groups), \ 232e260d2bbSVaradarajan Narayanan } 233e260d2bbSVaradarajan Narayanan 234e260d2bbSVaradarajan Narayanan #define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14) \ 235e260d2bbSVaradarajan Narayanan { \ 236e260d2bbSVaradarajan Narayanan .name = "gpio" #id, \ 237e260d2bbSVaradarajan Narayanan .pins = gpio##id##_pins, \ 238e260d2bbSVaradarajan Narayanan .npins = (unsigned)ARRAY_SIZE(gpio##id##_pins), \ 239e260d2bbSVaradarajan Narayanan .funcs = (int[]){ \ 240cdbac734SMatthew McClintock qca_mux_gpio, /* gpio mode */ \ 241e260d2bbSVaradarajan Narayanan qca_mux_##f1, \ 242e260d2bbSVaradarajan Narayanan qca_mux_##f2, \ 243e260d2bbSVaradarajan Narayanan qca_mux_##f3, \ 244e260d2bbSVaradarajan Narayanan qca_mux_##f4, \ 245e260d2bbSVaradarajan Narayanan qca_mux_##f5, \ 246e260d2bbSVaradarajan Narayanan qca_mux_##f6, \ 247e260d2bbSVaradarajan Narayanan qca_mux_##f7, \ 248e260d2bbSVaradarajan Narayanan qca_mux_##f8, \ 249e260d2bbSVaradarajan Narayanan qca_mux_##f9, \ 250e260d2bbSVaradarajan Narayanan qca_mux_##f10, \ 251e260d2bbSVaradarajan Narayanan qca_mux_##f11, \ 252e260d2bbSVaradarajan Narayanan qca_mux_##f12, \ 253e260d2bbSVaradarajan Narayanan qca_mux_##f13, \ 254e260d2bbSVaradarajan Narayanan qca_mux_##f14 \ 255e260d2bbSVaradarajan Narayanan }, \ 256e260d2bbSVaradarajan Narayanan .nfuncs = 15, \ 257a9b0b1feSMatthew McClintock .ctl_reg = 0x0 + 0x1000 * id, \ 258a9b0b1feSMatthew McClintock .io_reg = 0x4 + 0x1000 * id, \ 259a9b0b1feSMatthew McClintock .intr_cfg_reg = 0x8 + 0x1000 * id, \ 260a9b0b1feSMatthew McClintock .intr_status_reg = 0xc + 0x1000 * id, \ 261a9b0b1feSMatthew McClintock .intr_target_reg = 0x8 + 0x1000 * id, \ 262e260d2bbSVaradarajan Narayanan .mux_bit = 2, \ 263e260d2bbSVaradarajan Narayanan .pull_bit = 0, \ 264e260d2bbSVaradarajan Narayanan .drv_bit = 6, \ 265e260d2bbSVaradarajan Narayanan .oe_bit = 9, \ 266e260d2bbSVaradarajan Narayanan .in_bit = 0, \ 267e260d2bbSVaradarajan Narayanan .out_bit = 1, \ 268e260d2bbSVaradarajan Narayanan .intr_enable_bit = 0, \ 269e260d2bbSVaradarajan Narayanan .intr_status_bit = 0, \ 270e260d2bbSVaradarajan Narayanan .intr_target_bit = 5, \ 271e260d2bbSVaradarajan Narayanan .intr_raw_status_bit = 4, \ 272e260d2bbSVaradarajan Narayanan .intr_polarity_bit = 1, \ 273e260d2bbSVaradarajan Narayanan .intr_detection_bit = 2, \ 274e260d2bbSVaradarajan Narayanan .intr_detection_width = 2, \ 275e260d2bbSVaradarajan Narayanan } 276e260d2bbSVaradarajan Narayanan 277e260d2bbSVaradarajan Narayanan 278e260d2bbSVaradarajan Narayanan enum ipq4019_functions { 279e260d2bbSVaradarajan Narayanan qca_mux_gpio, 280*77a65959SRam Chandra Jangir qca_mux_aud_pin, 281*77a65959SRam Chandra Jangir qca_mux_audio_pwm, 282e260d2bbSVaradarajan Narayanan qca_mux_blsp_i2c0, 283e260d2bbSVaradarajan Narayanan qca_mux_blsp_i2c1, 284e260d2bbSVaradarajan Narayanan qca_mux_blsp_spi0, 285*77a65959SRam Chandra Jangir qca_mux_blsp_spi1, 286*77a65959SRam Chandra Jangir qca_mux_blsp_uart0, 287*77a65959SRam Chandra Jangir qca_mux_blsp_uart1, 288*77a65959SRam Chandra Jangir qca_mux_chip_rst, 289*77a65959SRam Chandra Jangir qca_mux_i2s_rx, 290*77a65959SRam Chandra Jangir qca_mux_i2s_spdif_in, 291*77a65959SRam Chandra Jangir qca_mux_i2s_spdif_out, 292*77a65959SRam Chandra Jangir qca_mux_i2s_td, 293*77a65959SRam Chandra Jangir qca_mux_i2s_tx, 294*77a65959SRam Chandra Jangir qca_mux_jtag, 295*77a65959SRam Chandra Jangir qca_mux_led0, 296*77a65959SRam Chandra Jangir qca_mux_led1, 297*77a65959SRam Chandra Jangir qca_mux_led2, 298*77a65959SRam Chandra Jangir qca_mux_led3, 299*77a65959SRam Chandra Jangir qca_mux_led4, 300*77a65959SRam Chandra Jangir qca_mux_led5, 301*77a65959SRam Chandra Jangir qca_mux_led6, 302*77a65959SRam Chandra Jangir qca_mux_led7, 303*77a65959SRam Chandra Jangir qca_mux_led8, 304*77a65959SRam Chandra Jangir qca_mux_led9, 305*77a65959SRam Chandra Jangir qca_mux_led10, 306*77a65959SRam Chandra Jangir qca_mux_led11, 307*77a65959SRam Chandra Jangir qca_mux_mdc, 308*77a65959SRam Chandra Jangir qca_mux_mdio, 309*77a65959SRam Chandra Jangir qca_mux_pcie, 310*77a65959SRam Chandra Jangir qca_mux_pmu, 311*77a65959SRam Chandra Jangir qca_mux_prng_rosc, 312*77a65959SRam Chandra Jangir qca_mux_qpic, 313*77a65959SRam Chandra Jangir qca_mux_rgmii, 314*77a65959SRam Chandra Jangir qca_mux_rmii, 315*77a65959SRam Chandra Jangir qca_mux_sdio, 316*77a65959SRam Chandra Jangir qca_mux_smart0, 317*77a65959SRam Chandra Jangir qca_mux_smart1, 318*77a65959SRam Chandra Jangir qca_mux_smart2, 319*77a65959SRam Chandra Jangir qca_mux_smart3, 320*77a65959SRam Chandra Jangir qca_mux_tm, 321*77a65959SRam Chandra Jangir qca_mux_wifi0, 322*77a65959SRam Chandra Jangir qca_mux_wifi1, 323e260d2bbSVaradarajan Narayanan qca_mux_NA, 324e260d2bbSVaradarajan Narayanan }; 325e260d2bbSVaradarajan Narayanan 326e260d2bbSVaradarajan Narayanan static const char * const gpio_groups[] = { 327e260d2bbSVaradarajan Narayanan "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", 328e260d2bbSVaradarajan Narayanan "gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14", 329e260d2bbSVaradarajan Narayanan "gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21", 330e260d2bbSVaradarajan Narayanan "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", 331e260d2bbSVaradarajan Narayanan "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35", 332e260d2bbSVaradarajan Narayanan "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", 333e260d2bbSVaradarajan Narayanan "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", 334e260d2bbSVaradarajan Narayanan "gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", 335e260d2bbSVaradarajan Narayanan "gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", 336e260d2bbSVaradarajan Narayanan "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70", 337e260d2bbSVaradarajan Narayanan "gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77", 338e260d2bbSVaradarajan Narayanan "gpio78", "gpio79", "gpio80", "gpio81", "gpio82", "gpio83", "gpio84", 339e260d2bbSVaradarajan Narayanan "gpio85", "gpio86", "gpio87", "gpio88", "gpio89", "gpio90", "gpio91", 340e260d2bbSVaradarajan Narayanan "gpio92", "gpio93", "gpio94", "gpio95", "gpio96", "gpio97", "gpio98", 341e260d2bbSVaradarajan Narayanan "gpio99", 342e260d2bbSVaradarajan Narayanan }; 343*77a65959SRam Chandra Jangir static const char * const aud_pin_groups[] = { 344*77a65959SRam Chandra Jangir "gpio48", "gpio49", "gpio50", "gpio51", 345*77a65959SRam Chandra Jangir }; 346*77a65959SRam Chandra Jangir static const char * const audio_pwm_groups[] = { 347*77a65959SRam Chandra Jangir "gpio30", "gpio31", "gpio32", "gpio33", "gpio64", "gpio65", "gpio66", 348*77a65959SRam Chandra Jangir "gpio67", 349e260d2bbSVaradarajan Narayanan }; 350e260d2bbSVaradarajan Narayanan static const char * const blsp_i2c0_groups[] = { 351e260d2bbSVaradarajan Narayanan "gpio10", "gpio11", "gpio20", "gpio21", "gpio58", "gpio59", 352e260d2bbSVaradarajan Narayanan }; 353e260d2bbSVaradarajan Narayanan static const char * const blsp_i2c1_groups[] = { 354e260d2bbSVaradarajan Narayanan "gpio12", "gpio13", "gpio34", "gpio35", 355e260d2bbSVaradarajan Narayanan }; 356*77a65959SRam Chandra Jangir static const char * const blsp_spi0_groups[] = { 357*77a65959SRam Chandra Jangir "gpio12", "gpio13", "gpio14", "gpio15", "gpio45", "gpio54", "gpio55", 358*77a65959SRam Chandra Jangir "gpio56", "gpio57", 359e260d2bbSVaradarajan Narayanan }; 360e260d2bbSVaradarajan Narayanan static const char * const blsp_spi1_groups[] = { 361e260d2bbSVaradarajan Narayanan "gpio44", "gpio45", "gpio46", "gpio47", 362e260d2bbSVaradarajan Narayanan }; 363*77a65959SRam Chandra Jangir static const char * const blsp_uart0_groups[] = { 364*77a65959SRam Chandra Jangir "gpio16", "gpio17", "gpio60", "gpio61", 365*77a65959SRam Chandra Jangir }; 366*77a65959SRam Chandra Jangir static const char * const blsp_uart1_groups[] = { 367*77a65959SRam Chandra Jangir "gpio8", "gpio9", "gpio10", "gpio11", 368*77a65959SRam Chandra Jangir }; 369*77a65959SRam Chandra Jangir static const char * const chip_rst_groups[] = { 370*77a65959SRam Chandra Jangir "gpio62", 371*77a65959SRam Chandra Jangir }; 372*77a65959SRam Chandra Jangir static const char * const i2s_rx_groups[] = { 373*77a65959SRam Chandra Jangir "gpio0", "gpio1", "gpio2", "gpio20", "gpio21", "gpio22", "gpio23", 374*77a65959SRam Chandra Jangir "gpio58", "gpio60", "gpio61", "gpio63", 375*77a65959SRam Chandra Jangir }; 376*77a65959SRam Chandra Jangir static const char * const i2s_spdif_in_groups[] = { 377*77a65959SRam Chandra Jangir "gpio34", "gpio59", "gpio63", 378*77a65959SRam Chandra Jangir }; 379*77a65959SRam Chandra Jangir static const char * const i2s_spdif_out_groups[] = { 380*77a65959SRam Chandra Jangir "gpio35", "gpio62", "gpio63", 381*77a65959SRam Chandra Jangir }; 382*77a65959SRam Chandra Jangir static const char * const i2s_td_groups[] = { 383*77a65959SRam Chandra Jangir "gpio27", "gpio28", "gpio29", "gpio54", "gpio55", "gpio56", "gpio63", 384*77a65959SRam Chandra Jangir }; 385*77a65959SRam Chandra Jangir static const char * const i2s_tx_groups[] = { 386*77a65959SRam Chandra Jangir "gpio24", "gpio25", "gpio26", "gpio52", "gpio53", "gpio57", "gpio60", 387*77a65959SRam Chandra Jangir "gpio61", 388*77a65959SRam Chandra Jangir }; 389*77a65959SRam Chandra Jangir static const char * const jtag_groups[] = { 390*77a65959SRam Chandra Jangir "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", 391*77a65959SRam Chandra Jangir }; 392*77a65959SRam Chandra Jangir static const char * const led0_groups[] = { 393*77a65959SRam Chandra Jangir "gpio16", "gpio36", "gpio60", 394*77a65959SRam Chandra Jangir }; 395*77a65959SRam Chandra Jangir static const char * const led1_groups[] = { 396*77a65959SRam Chandra Jangir "gpio17", "gpio37", "gpio61", 397*77a65959SRam Chandra Jangir }; 398*77a65959SRam Chandra Jangir static const char * const led2_groups[] = { 399*77a65959SRam Chandra Jangir "gpio36", "gpio38", "gpio58", 400*77a65959SRam Chandra Jangir }; 401*77a65959SRam Chandra Jangir static const char * const led3_groups[] = { 402*77a65959SRam Chandra Jangir "gpio39", 403*77a65959SRam Chandra Jangir }; 404*77a65959SRam Chandra Jangir static const char * const led4_groups[] = { 405*77a65959SRam Chandra Jangir "gpio40", 406*77a65959SRam Chandra Jangir }; 407*77a65959SRam Chandra Jangir static const char * const led5_groups[] = { 408*77a65959SRam Chandra Jangir "gpio44", 409*77a65959SRam Chandra Jangir }; 410*77a65959SRam Chandra Jangir static const char * const led6_groups[] = { 411*77a65959SRam Chandra Jangir "gpio45", 412*77a65959SRam Chandra Jangir }; 413*77a65959SRam Chandra Jangir static const char * const led7_groups[] = { 414*77a65959SRam Chandra Jangir "gpio46", 415*77a65959SRam Chandra Jangir }; 416*77a65959SRam Chandra Jangir static const char * const led8_groups[] = { 417*77a65959SRam Chandra Jangir "gpio47", 418*77a65959SRam Chandra Jangir }; 419*77a65959SRam Chandra Jangir static const char * const led9_groups[] = { 420*77a65959SRam Chandra Jangir "gpio48", 421*77a65959SRam Chandra Jangir }; 422*77a65959SRam Chandra Jangir static const char * const led10_groups[] = { 423*77a65959SRam Chandra Jangir "gpio49", 424*77a65959SRam Chandra Jangir }; 425*77a65959SRam Chandra Jangir static const char * const led11_groups[] = { 426*77a65959SRam Chandra Jangir "gpio50", 427*77a65959SRam Chandra Jangir }; 428*77a65959SRam Chandra Jangir static const char * const mdc_groups[] = { 429*77a65959SRam Chandra Jangir "gpio7", "gpio52", 430*77a65959SRam Chandra Jangir }; 431*77a65959SRam Chandra Jangir static const char * const mdio_groups[] = { 432*77a65959SRam Chandra Jangir "gpio6", "gpio53", 433*77a65959SRam Chandra Jangir }; 434*77a65959SRam Chandra Jangir static const char * const pcie_groups[] = { 435*77a65959SRam Chandra Jangir "gpio39", "gpio52", 436*77a65959SRam Chandra Jangir }; 437*77a65959SRam Chandra Jangir static const char * const pmu_groups[] = { 438*77a65959SRam Chandra Jangir "gpio54", "gpio55", 439*77a65959SRam Chandra Jangir }; 440*77a65959SRam Chandra Jangir static const char * const prng_rosc_groups[] = { 441*77a65959SRam Chandra Jangir "gpio53", 442*77a65959SRam Chandra Jangir }; 443*77a65959SRam Chandra Jangir static const char * const qpic_groups[] = { 444*77a65959SRam Chandra Jangir "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", "gpio57", "gpio58", 445*77a65959SRam Chandra Jangir "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", "gpio64", "gpio65", 446*77a65959SRam Chandra Jangir "gpio66", "gpio67", "gpio68", "gpio69", 447*77a65959SRam Chandra Jangir }; 448*77a65959SRam Chandra Jangir static const char * const rgmii_groups[] = { 449*77a65959SRam Chandra Jangir "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", 450*77a65959SRam Chandra Jangir "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", 451*77a65959SRam Chandra Jangir }; 452*77a65959SRam Chandra Jangir static const char * const rmii_groups[] = { 453*77a65959SRam Chandra Jangir "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", 454*77a65959SRam Chandra Jangir "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", 455*77a65959SRam Chandra Jangir "gpio50", "gpio51", 456*77a65959SRam Chandra Jangir }; 457*77a65959SRam Chandra Jangir static const char * const sdio_groups[] = { 458*77a65959SRam Chandra Jangir "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", "gpio29", 459*77a65959SRam Chandra Jangir "gpio30", "gpio31", "gpio32", 460*77a65959SRam Chandra Jangir }; 461*77a65959SRam Chandra Jangir static const char * const smart0_groups[] = { 462*77a65959SRam Chandra Jangir "gpio0", "gpio1", "gpio2", "gpio5", "gpio44", "gpio45", "gpio46", 463*77a65959SRam Chandra Jangir "gpio47", 464*77a65959SRam Chandra Jangir }; 465*77a65959SRam Chandra Jangir static const char * const smart1_groups[] = { 466*77a65959SRam Chandra Jangir "gpio8", "gpio9", "gpio16", "gpio17", "gpio58", "gpio59", "gpio60", 467*77a65959SRam Chandra Jangir "gpio61", 468*77a65959SRam Chandra Jangir }; 469*77a65959SRam Chandra Jangir static const char * const smart2_groups[] = { 470*77a65959SRam Chandra Jangir "gpio40", "gpio41", "gpio48", "gpio49", 471*77a65959SRam Chandra Jangir }; 472*77a65959SRam Chandra Jangir static const char * const smart3_groups[] = { 473*77a65959SRam Chandra Jangir "gpio58", "gpio59", "gpio60", "gpio61", 474*77a65959SRam Chandra Jangir }; 475*77a65959SRam Chandra Jangir static const char * const tm_groups[] = { 476*77a65959SRam Chandra Jangir "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", "gpio57", "gpio58", 477*77a65959SRam Chandra Jangir "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", 478*77a65959SRam Chandra Jangir }; 479*77a65959SRam Chandra Jangir static const char * const wifi0_groups[] = { 480*77a65959SRam Chandra Jangir "gpio37", "gpio40", "gpio41", "gpio42", "gpio50", "gpio51", "gpio52", 481*77a65959SRam Chandra Jangir "gpio53", "gpio56", "gpio57", "gpio58", "gpio98", 482*77a65959SRam Chandra Jangir }; 483*77a65959SRam Chandra Jangir static const char * const wifi1_groups[] = { 484*77a65959SRam Chandra Jangir "gpio37", "gpio40", "gpio41", "gpio43", "gpio50", "gpio51", "gpio52", 485*77a65959SRam Chandra Jangir "gpio53", "gpio56", "gpio57", "gpio58", "gpio98", 486*77a65959SRam Chandra Jangir }; 487e260d2bbSVaradarajan Narayanan 488e260d2bbSVaradarajan Narayanan static const struct msm_function ipq4019_functions[] = { 489*77a65959SRam Chandra Jangir FUNCTION(aud_pin), 490*77a65959SRam Chandra Jangir FUNCTION(audio_pwm), 491e260d2bbSVaradarajan Narayanan FUNCTION(blsp_i2c0), 492e260d2bbSVaradarajan Narayanan FUNCTION(blsp_i2c1), 493e260d2bbSVaradarajan Narayanan FUNCTION(blsp_spi0), 494*77a65959SRam Chandra Jangir FUNCTION(blsp_spi1), 495*77a65959SRam Chandra Jangir FUNCTION(blsp_uart0), 496*77a65959SRam Chandra Jangir FUNCTION(blsp_uart1), 497*77a65959SRam Chandra Jangir FUNCTION(chip_rst), 498*77a65959SRam Chandra Jangir FUNCTION(gpio), 499*77a65959SRam Chandra Jangir FUNCTION(i2s_rx), 500*77a65959SRam Chandra Jangir FUNCTION(i2s_spdif_in), 501*77a65959SRam Chandra Jangir FUNCTION(i2s_spdif_out), 502*77a65959SRam Chandra Jangir FUNCTION(i2s_td), 503*77a65959SRam Chandra Jangir FUNCTION(i2s_tx), 504*77a65959SRam Chandra Jangir FUNCTION(jtag), 505*77a65959SRam Chandra Jangir FUNCTION(led0), 506*77a65959SRam Chandra Jangir FUNCTION(led1), 507*77a65959SRam Chandra Jangir FUNCTION(led2), 508*77a65959SRam Chandra Jangir FUNCTION(led3), 509*77a65959SRam Chandra Jangir FUNCTION(led4), 510*77a65959SRam Chandra Jangir FUNCTION(led5), 511*77a65959SRam Chandra Jangir FUNCTION(led6), 512*77a65959SRam Chandra Jangir FUNCTION(led7), 513*77a65959SRam Chandra Jangir FUNCTION(led8), 514*77a65959SRam Chandra Jangir FUNCTION(led9), 515*77a65959SRam Chandra Jangir FUNCTION(led10), 516*77a65959SRam Chandra Jangir FUNCTION(led11), 517*77a65959SRam Chandra Jangir FUNCTION(mdc), 518*77a65959SRam Chandra Jangir FUNCTION(mdio), 519*77a65959SRam Chandra Jangir FUNCTION(pcie), 520*77a65959SRam Chandra Jangir FUNCTION(pmu), 521*77a65959SRam Chandra Jangir FUNCTION(prng_rosc), 522*77a65959SRam Chandra Jangir FUNCTION(qpic), 523*77a65959SRam Chandra Jangir FUNCTION(rgmii), 524*77a65959SRam Chandra Jangir FUNCTION(rmii), 525*77a65959SRam Chandra Jangir FUNCTION(sdio), 526*77a65959SRam Chandra Jangir FUNCTION(smart0), 527*77a65959SRam Chandra Jangir FUNCTION(smart1), 528*77a65959SRam Chandra Jangir FUNCTION(smart2), 529*77a65959SRam Chandra Jangir FUNCTION(smart3), 530*77a65959SRam Chandra Jangir FUNCTION(tm), 531*77a65959SRam Chandra Jangir FUNCTION(wifi0), 532*77a65959SRam Chandra Jangir FUNCTION(wifi1), 533e260d2bbSVaradarajan Narayanan }; 534e260d2bbSVaradarajan Narayanan 535e260d2bbSVaradarajan Narayanan static const struct msm_pingroup ipq4019_groups[] = { 536*77a65959SRam Chandra Jangir PINGROUP(0, jtag, smart0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 537*77a65959SRam Chandra Jangir NA, NA), 538*77a65959SRam Chandra Jangir PINGROUP(1, jtag, smart0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 539*77a65959SRam Chandra Jangir NA, NA), 540*77a65959SRam Chandra Jangir PINGROUP(2, jtag, smart0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 541*77a65959SRam Chandra Jangir NA, NA), 542*77a65959SRam Chandra Jangir PINGROUP(3, jtag, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 543*77a65959SRam Chandra Jangir PINGROUP(4, jtag, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 544*77a65959SRam Chandra Jangir PINGROUP(5, jtag, smart0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 545*77a65959SRam Chandra Jangir NA), 546*77a65959SRam Chandra Jangir PINGROUP(6, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 547*77a65959SRam Chandra Jangir PINGROUP(7, mdc, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 548*77a65959SRam Chandra Jangir PINGROUP(8, blsp_uart1, NA, NA, smart1, NA, NA, NA, NA, NA, NA, NA, 549*77a65959SRam Chandra Jangir NA, NA, NA), 550*77a65959SRam Chandra Jangir PINGROUP(9, blsp_uart1, NA, NA, smart1, NA, NA, NA, NA, NA, NA, NA, 551*77a65959SRam Chandra Jangir NA, NA, NA), 552*77a65959SRam Chandra Jangir PINGROUP(10, blsp_uart1, NA, NA, blsp_i2c0, NA, NA, NA, NA, NA, NA, NA, 553*77a65959SRam Chandra Jangir NA, NA, NA), 554*77a65959SRam Chandra Jangir PINGROUP(11, blsp_uart1, NA, NA, blsp_i2c0, NA, NA, NA, NA, NA, NA, NA, 555*77a65959SRam Chandra Jangir NA, NA, NA), 556*77a65959SRam Chandra Jangir PINGROUP(12, blsp_spi0, blsp_i2c1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 557*77a65959SRam Chandra Jangir NA, NA, NA), 558*77a65959SRam Chandra Jangir PINGROUP(13, blsp_spi0, blsp_i2c1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 559*77a65959SRam Chandra Jangir NA, NA, NA), 560*77a65959SRam Chandra Jangir PINGROUP(14, blsp_spi0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 561*77a65959SRam Chandra Jangir NA), 562*77a65959SRam Chandra Jangir PINGROUP(15, blsp_spi0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 563*77a65959SRam Chandra Jangir NA), 564*77a65959SRam Chandra Jangir PINGROUP(16, blsp_uart0, led0, smart1, NA, NA, NA, NA, NA, NA, NA, NA, 565*77a65959SRam Chandra Jangir NA, NA, NA), 566*77a65959SRam Chandra Jangir PINGROUP(17, blsp_uart0, led1, smart1, NA, NA, NA, NA, NA, NA, NA, NA, 567*77a65959SRam Chandra Jangir NA, NA, NA), 568e260d2bbSVaradarajan Narayanan PINGROUP(18, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 569e260d2bbSVaradarajan Narayanan PINGROUP(19, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 570*77a65959SRam Chandra Jangir PINGROUP(20, blsp_i2c0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 571*77a65959SRam Chandra Jangir NA, NA), 572*77a65959SRam Chandra Jangir PINGROUP(21, blsp_i2c0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 573*77a65959SRam Chandra Jangir NA, NA), 574*77a65959SRam Chandra Jangir PINGROUP(22, rgmii, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 575*77a65959SRam Chandra Jangir NA), 576*77a65959SRam Chandra Jangir PINGROUP(23, sdio, rgmii, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 577*77a65959SRam Chandra Jangir NA, NA), 578*77a65959SRam Chandra Jangir PINGROUP(24, sdio, rgmii, i2s_tx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 579*77a65959SRam Chandra Jangir NA, NA), 580*77a65959SRam Chandra Jangir PINGROUP(25, sdio, rgmii, i2s_tx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 581*77a65959SRam Chandra Jangir NA, NA), 582*77a65959SRam Chandra Jangir PINGROUP(26, sdio, rgmii, i2s_tx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 583*77a65959SRam Chandra Jangir NA, NA), 584*77a65959SRam Chandra Jangir PINGROUP(27, sdio, rgmii, i2s_td, NA, NA, NA, NA, NA, NA, NA, NA, NA, 585*77a65959SRam Chandra Jangir NA, NA), 586*77a65959SRam Chandra Jangir PINGROUP(28, sdio, rgmii, i2s_td, NA, NA, NA, NA, NA, NA, NA, NA, NA, 587*77a65959SRam Chandra Jangir NA, NA), 588*77a65959SRam Chandra Jangir PINGROUP(29, sdio, rgmii, i2s_td, NA, NA, NA, NA, NA, NA, NA, NA, NA, 589*77a65959SRam Chandra Jangir NA, NA), 590*77a65959SRam Chandra Jangir PINGROUP(30, sdio, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, 591*77a65959SRam Chandra Jangir NA, NA, NA), 592*77a65959SRam Chandra Jangir PINGROUP(31, sdio, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, 593*77a65959SRam Chandra Jangir NA, NA, NA), 594*77a65959SRam Chandra Jangir PINGROUP(32, sdio, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, 595*77a65959SRam Chandra Jangir NA, NA, NA), 596*77a65959SRam Chandra Jangir PINGROUP(33, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 597*77a65959SRam Chandra Jangir NA, NA), 598*77a65959SRam Chandra Jangir PINGROUP(34, blsp_i2c1, i2s_spdif_in, NA, NA, NA, NA, NA, NA, NA, NA, 599*77a65959SRam Chandra Jangir NA, NA, NA, NA), 600*77a65959SRam Chandra Jangir PINGROUP(35, blsp_i2c1, i2s_spdif_out, NA, NA, NA, NA, NA, NA, NA, NA, 601*77a65959SRam Chandra Jangir NA, NA, NA, NA), 602*77a65959SRam Chandra Jangir PINGROUP(36, rmii, led2, led0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 603*77a65959SRam Chandra Jangir NA), 604*77a65959SRam Chandra Jangir PINGROUP(37, rmii, wifi0, wifi1, led1, NA, NA, NA, NA, NA, NA, NA, NA, 605*77a65959SRam Chandra Jangir NA, NA), 606*77a65959SRam Chandra Jangir PINGROUP(38, rmii, led2, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 607*77a65959SRam Chandra Jangir NA), 608*77a65959SRam Chandra Jangir PINGROUP(39, rmii, pcie, led3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 609*77a65959SRam Chandra Jangir NA), 610*77a65959SRam Chandra Jangir PINGROUP(40, rmii, wifi0, wifi1, smart2, led4, NA, NA, NA, NA, NA, NA, 611*77a65959SRam Chandra Jangir NA, NA, NA), 612*77a65959SRam Chandra Jangir PINGROUP(41, rmii, wifi0, wifi1, smart2, NA, NA, NA, NA, NA, NA, NA, 613*77a65959SRam Chandra Jangir NA, NA, NA), 614*77a65959SRam Chandra Jangir PINGROUP(42, rmii, wifi0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 615*77a65959SRam Chandra Jangir NA), 616*77a65959SRam Chandra Jangir PINGROUP(43, rmii, wifi1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 617*77a65959SRam Chandra Jangir NA), 618*77a65959SRam Chandra Jangir PINGROUP(44, rmii, blsp_spi1, smart0, led5, NA, NA, NA, NA, NA, NA, NA, 619*77a65959SRam Chandra Jangir NA, NA, NA), 620*77a65959SRam Chandra Jangir PINGROUP(45, rmii, blsp_spi1, blsp_spi0, smart0, led6, NA, NA, NA, NA, 621*77a65959SRam Chandra Jangir NA, NA, NA, NA, NA), 622*77a65959SRam Chandra Jangir PINGROUP(46, rmii, blsp_spi1, smart0, led7, NA, NA, NA, NA, NA, NA, NA, 623*77a65959SRam Chandra Jangir NA, NA, NA), 624*77a65959SRam Chandra Jangir PINGROUP(47, rmii, blsp_spi1, smart0, led8, NA, NA, NA, NA, NA, NA, NA, 625*77a65959SRam Chandra Jangir NA, NA, NA), 626*77a65959SRam Chandra Jangir PINGROUP(48, rmii, aud_pin, smart2, led9, NA, NA, NA, NA, NA, NA, NA, 627*77a65959SRam Chandra Jangir NA, NA, NA), 628*77a65959SRam Chandra Jangir PINGROUP(49, rmii, aud_pin, smart2, led10, NA, NA, NA, NA, NA, NA, NA, 629*77a65959SRam Chandra Jangir NA, NA, NA), 630*77a65959SRam Chandra Jangir PINGROUP(50, rmii, aud_pin, wifi0, wifi1, led11, NA, NA, NA, NA, NA, 631*77a65959SRam Chandra Jangir NA, NA, NA, NA), 632*77a65959SRam Chandra Jangir PINGROUP(51, rmii, aud_pin, wifi0, wifi1, NA, NA, NA, NA, NA, NA, NA, 633*77a65959SRam Chandra Jangir NA, NA, NA), 634*77a65959SRam Chandra Jangir PINGROUP(52, qpic, mdc, pcie, i2s_tx, NA, NA, NA, tm, wifi0, wifi1, NA, 635*77a65959SRam Chandra Jangir NA, NA, NA), 636*77a65959SRam Chandra Jangir PINGROUP(53, qpic, mdio, i2s_tx, prng_rosc, NA, tm, wifi0, wifi1, NA, 637*77a65959SRam Chandra Jangir NA, NA, NA, NA, NA), 638*77a65959SRam Chandra Jangir PINGROUP(54, qpic, blsp_spi0, i2s_td, NA, pmu, NA, NA, NA, tm, NA, NA, 639*77a65959SRam Chandra Jangir NA, NA, NA), 640*77a65959SRam Chandra Jangir PINGROUP(55, qpic, blsp_spi0, i2s_td, NA, pmu, NA, NA, NA, tm, NA, NA, 641*77a65959SRam Chandra Jangir NA, NA, NA), 642*77a65959SRam Chandra Jangir PINGROUP(56, qpic, blsp_spi0, i2s_td, NA, NA, tm, wifi0, wifi1, NA, NA, 643*77a65959SRam Chandra Jangir NA, NA, NA, NA), 644*77a65959SRam Chandra Jangir PINGROUP(57, qpic, blsp_spi0, i2s_tx, NA, NA, tm, wifi0, wifi1, NA, NA, 645*77a65959SRam Chandra Jangir NA, NA, NA, NA), 646*77a65959SRam Chandra Jangir PINGROUP(58, qpic, led2, blsp_i2c0, smart3, smart1, i2s_rx, NA, NA, tm, 647*77a65959SRam Chandra Jangir wifi0, wifi1, NA, NA, NA), 648*77a65959SRam Chandra Jangir PINGROUP(59, qpic, blsp_i2c0, smart3, smart1, i2s_spdif_in, NA, NA, NA, 649*77a65959SRam Chandra Jangir NA, NA, tm, NA, NA, NA), 650*77a65959SRam Chandra Jangir PINGROUP(60, qpic, blsp_uart0, smart1, smart3, led0, i2s_tx, i2s_rx, 651*77a65959SRam Chandra Jangir NA, NA, NA, NA, NA, tm, NA), 652*77a65959SRam Chandra Jangir PINGROUP(61, qpic, blsp_uart0, smart1, smart3, led1, i2s_tx, i2s_rx, 653*77a65959SRam Chandra Jangir NA, NA, NA, NA, NA, tm, NA), 654*77a65959SRam Chandra Jangir PINGROUP(62, qpic, chip_rst, NA, NA, i2s_spdif_out, NA, NA, NA, NA, NA, 655*77a65959SRam Chandra Jangir tm, NA, NA, NA), 656*77a65959SRam Chandra Jangir PINGROUP(63, qpic, NA, NA, NA, i2s_td, i2s_rx, i2s_spdif_out, 657*77a65959SRam Chandra Jangir i2s_spdif_in, NA, NA, NA, NA, tm, NA), 658*77a65959SRam Chandra Jangir PINGROUP(64, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 659*77a65959SRam Chandra Jangir NA, NA), 660*77a65959SRam Chandra Jangir PINGROUP(65, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 661*77a65959SRam Chandra Jangir NA, NA), 662*77a65959SRam Chandra Jangir PINGROUP(66, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 663*77a65959SRam Chandra Jangir NA, NA), 664*77a65959SRam Chandra Jangir PINGROUP(67, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 665*77a65959SRam Chandra Jangir NA, NA), 666*77a65959SRam Chandra Jangir PINGROUP(68, qpic, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 667*77a65959SRam Chandra Jangir PINGROUP(69, qpic, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 668d7402de4SChristian Lamparter PINGROUP(70, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 669d7402de4SChristian Lamparter PINGROUP(71, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 670d7402de4SChristian Lamparter PINGROUP(72, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 671d7402de4SChristian Lamparter PINGROUP(73, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 672d7402de4SChristian Lamparter PINGROUP(74, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 673d7402de4SChristian Lamparter PINGROUP(75, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 674d7402de4SChristian Lamparter PINGROUP(76, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 675d7402de4SChristian Lamparter PINGROUP(77, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 676d7402de4SChristian Lamparter PINGROUP(78, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 677d7402de4SChristian Lamparter PINGROUP(79, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 678d7402de4SChristian Lamparter PINGROUP(80, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 679d7402de4SChristian Lamparter PINGROUP(81, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 680d7402de4SChristian Lamparter PINGROUP(82, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 681d7402de4SChristian Lamparter PINGROUP(83, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 682d7402de4SChristian Lamparter PINGROUP(84, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 683d7402de4SChristian Lamparter PINGROUP(85, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 684d7402de4SChristian Lamparter PINGROUP(86, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 685d7402de4SChristian Lamparter PINGROUP(87, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 686d7402de4SChristian Lamparter PINGROUP(88, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 687d7402de4SChristian Lamparter PINGROUP(89, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 688d7402de4SChristian Lamparter PINGROUP(90, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 689d7402de4SChristian Lamparter PINGROUP(91, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 690d7402de4SChristian Lamparter PINGROUP(92, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 691d7402de4SChristian Lamparter PINGROUP(93, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 692d7402de4SChristian Lamparter PINGROUP(94, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 693d7402de4SChristian Lamparter PINGROUP(95, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 694d7402de4SChristian Lamparter PINGROUP(96, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 695d7402de4SChristian Lamparter PINGROUP(97, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 696*77a65959SRam Chandra Jangir PINGROUP(98, wifi0, wifi1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 697*77a65959SRam Chandra Jangir NA), 698d7402de4SChristian Lamparter PINGROUP(99, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 699e260d2bbSVaradarajan Narayanan }; 700e260d2bbSVaradarajan Narayanan 701e260d2bbSVaradarajan Narayanan static const struct msm_pinctrl_soc_data ipq4019_pinctrl = { 702e260d2bbSVaradarajan Narayanan .pins = ipq4019_pins, 703e260d2bbSVaradarajan Narayanan .npins = ARRAY_SIZE(ipq4019_pins), 704e260d2bbSVaradarajan Narayanan .functions = ipq4019_functions, 705e260d2bbSVaradarajan Narayanan .nfunctions = ARRAY_SIZE(ipq4019_functions), 706e260d2bbSVaradarajan Narayanan .groups = ipq4019_groups, 707e260d2bbSVaradarajan Narayanan .ngroups = ARRAY_SIZE(ipq4019_groups), 7085303f782SMatthew McClintock .ngpios = 100, 709e260d2bbSVaradarajan Narayanan }; 710e260d2bbSVaradarajan Narayanan 711e260d2bbSVaradarajan Narayanan static int ipq4019_pinctrl_probe(struct platform_device *pdev) 712e260d2bbSVaradarajan Narayanan { 713e260d2bbSVaradarajan Narayanan return msm_pinctrl_probe(pdev, &ipq4019_pinctrl); 714e260d2bbSVaradarajan Narayanan } 715e260d2bbSVaradarajan Narayanan 716e260d2bbSVaradarajan Narayanan static const struct of_device_id ipq4019_pinctrl_of_match[] = { 717e260d2bbSVaradarajan Narayanan { .compatible = "qcom,ipq4019-pinctrl", }, 718e260d2bbSVaradarajan Narayanan { }, 719e260d2bbSVaradarajan Narayanan }; 720e260d2bbSVaradarajan Narayanan 721e260d2bbSVaradarajan Narayanan static struct platform_driver ipq4019_pinctrl_driver = { 722e260d2bbSVaradarajan Narayanan .driver = { 723e260d2bbSVaradarajan Narayanan .name = "ipq4019-pinctrl", 724e260d2bbSVaradarajan Narayanan .of_match_table = ipq4019_pinctrl_of_match, 725e260d2bbSVaradarajan Narayanan }, 726e260d2bbSVaradarajan Narayanan .probe = ipq4019_pinctrl_probe, 727e260d2bbSVaradarajan Narayanan .remove = msm_pinctrl_remove, 728e260d2bbSVaradarajan Narayanan }; 729e260d2bbSVaradarajan Narayanan 730e260d2bbSVaradarajan Narayanan static int __init ipq4019_pinctrl_init(void) 731e260d2bbSVaradarajan Narayanan { 732e260d2bbSVaradarajan Narayanan return platform_driver_register(&ipq4019_pinctrl_driver); 733e260d2bbSVaradarajan Narayanan } 734e260d2bbSVaradarajan Narayanan arch_initcall(ipq4019_pinctrl_init); 735e260d2bbSVaradarajan Narayanan 736e260d2bbSVaradarajan Narayanan static void __exit ipq4019_pinctrl_exit(void) 737e260d2bbSVaradarajan Narayanan { 738e260d2bbSVaradarajan Narayanan platform_driver_unregister(&ipq4019_pinctrl_driver); 739e260d2bbSVaradarajan Narayanan } 740e260d2bbSVaradarajan Narayanan module_exit(ipq4019_pinctrl_exit); 741e260d2bbSVaradarajan Narayanan 742e260d2bbSVaradarajan Narayanan MODULE_DESCRIPTION("Qualcomm ipq4019 pinctrl driver"); 743e260d2bbSVaradarajan Narayanan MODULE_LICENSE("GPL v2"); 744e260d2bbSVaradarajan Narayanan MODULE_DEVICE_TABLE(of, ipq4019_pinctrl_of_match); 745