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, 28077a65959SRam Chandra Jangir qca_mux_aud_pin, 28177a65959SRam Chandra Jangir qca_mux_audio_pwm, 282e260d2bbSVaradarajan Narayanan qca_mux_blsp_i2c0, 283e260d2bbSVaradarajan Narayanan qca_mux_blsp_i2c1, 284e260d2bbSVaradarajan Narayanan qca_mux_blsp_spi0, 28577a65959SRam Chandra Jangir qca_mux_blsp_spi1, 28677a65959SRam Chandra Jangir qca_mux_blsp_uart0, 28777a65959SRam Chandra Jangir qca_mux_blsp_uart1, 28877a65959SRam Chandra Jangir qca_mux_chip_rst, 28977a65959SRam Chandra Jangir qca_mux_i2s_rx, 29077a65959SRam Chandra Jangir qca_mux_i2s_spdif_in, 29177a65959SRam Chandra Jangir qca_mux_i2s_spdif_out, 29277a65959SRam Chandra Jangir qca_mux_i2s_td, 29377a65959SRam Chandra Jangir qca_mux_i2s_tx, 29477a65959SRam Chandra Jangir qca_mux_jtag, 29577a65959SRam Chandra Jangir qca_mux_led0, 29677a65959SRam Chandra Jangir qca_mux_led1, 29777a65959SRam Chandra Jangir qca_mux_led2, 29877a65959SRam Chandra Jangir qca_mux_led3, 29977a65959SRam Chandra Jangir qca_mux_led4, 30077a65959SRam Chandra Jangir qca_mux_led5, 30177a65959SRam Chandra Jangir qca_mux_led6, 30277a65959SRam Chandra Jangir qca_mux_led7, 30377a65959SRam Chandra Jangir qca_mux_led8, 30477a65959SRam Chandra Jangir qca_mux_led9, 30577a65959SRam Chandra Jangir qca_mux_led10, 30677a65959SRam Chandra Jangir qca_mux_led11, 30777a65959SRam Chandra Jangir qca_mux_mdc, 30877a65959SRam Chandra Jangir qca_mux_mdio, 30977a65959SRam Chandra Jangir qca_mux_pcie, 31077a65959SRam Chandra Jangir qca_mux_pmu, 31177a65959SRam Chandra Jangir qca_mux_prng_rosc, 31277a65959SRam Chandra Jangir qca_mux_qpic, 31377a65959SRam Chandra Jangir qca_mux_rgmii, 31477a65959SRam Chandra Jangir qca_mux_rmii, 31577a65959SRam Chandra Jangir qca_mux_sdio, 31677a65959SRam Chandra Jangir qca_mux_smart0, 31777a65959SRam Chandra Jangir qca_mux_smart1, 31877a65959SRam Chandra Jangir qca_mux_smart2, 31977a65959SRam Chandra Jangir qca_mux_smart3, 32077a65959SRam Chandra Jangir qca_mux_tm, 32177a65959SRam Chandra Jangir qca_mux_wifi0, 32277a65959SRam 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 }; 34377a65959SRam Chandra Jangir static const char * const aud_pin_groups[] = { 34477a65959SRam Chandra Jangir "gpio48", "gpio49", "gpio50", "gpio51", 34577a65959SRam Chandra Jangir }; 34677a65959SRam Chandra Jangir static const char * const audio_pwm_groups[] = { 34777a65959SRam Chandra Jangir "gpio30", "gpio31", "gpio32", "gpio33", "gpio64", "gpio65", "gpio66", 34877a65959SRam 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 }; 35677a65959SRam Chandra Jangir static const char * const blsp_spi0_groups[] = { 35777a65959SRam Chandra Jangir "gpio12", "gpio13", "gpio14", "gpio15", "gpio45", "gpio54", "gpio55", 35877a65959SRam Chandra Jangir "gpio56", "gpio57", 359e260d2bbSVaradarajan Narayanan }; 360e260d2bbSVaradarajan Narayanan static const char * const blsp_spi1_groups[] = { 361e260d2bbSVaradarajan Narayanan "gpio44", "gpio45", "gpio46", "gpio47", 362e260d2bbSVaradarajan Narayanan }; 36377a65959SRam Chandra Jangir static const char * const blsp_uart0_groups[] = { 36477a65959SRam Chandra Jangir "gpio16", "gpio17", "gpio60", "gpio61", 36577a65959SRam Chandra Jangir }; 36677a65959SRam Chandra Jangir static const char * const blsp_uart1_groups[] = { 36777a65959SRam Chandra Jangir "gpio8", "gpio9", "gpio10", "gpio11", 36877a65959SRam Chandra Jangir }; 36977a65959SRam Chandra Jangir static const char * const chip_rst_groups[] = { 37077a65959SRam Chandra Jangir "gpio62", 37177a65959SRam Chandra Jangir }; 37277a65959SRam Chandra Jangir static const char * const i2s_rx_groups[] = { 37377a65959SRam Chandra Jangir "gpio0", "gpio1", "gpio2", "gpio20", "gpio21", "gpio22", "gpio23", 37477a65959SRam Chandra Jangir "gpio58", "gpio60", "gpio61", "gpio63", 37577a65959SRam Chandra Jangir }; 37677a65959SRam Chandra Jangir static const char * const i2s_spdif_in_groups[] = { 37777a65959SRam Chandra Jangir "gpio34", "gpio59", "gpio63", 37877a65959SRam Chandra Jangir }; 37977a65959SRam Chandra Jangir static const char * const i2s_spdif_out_groups[] = { 38077a65959SRam Chandra Jangir "gpio35", "gpio62", "gpio63", 38177a65959SRam Chandra Jangir }; 38277a65959SRam Chandra Jangir static const char * const i2s_td_groups[] = { 38377a65959SRam Chandra Jangir "gpio27", "gpio28", "gpio29", "gpio54", "gpio55", "gpio56", "gpio63", 38477a65959SRam Chandra Jangir }; 38577a65959SRam Chandra Jangir static const char * const i2s_tx_groups[] = { 38677a65959SRam Chandra Jangir "gpio24", "gpio25", "gpio26", "gpio52", "gpio53", "gpio57", "gpio60", 38777a65959SRam Chandra Jangir "gpio61", 38877a65959SRam Chandra Jangir }; 38977a65959SRam Chandra Jangir static const char * const jtag_groups[] = { 39077a65959SRam Chandra Jangir "gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", 39177a65959SRam Chandra Jangir }; 39277a65959SRam Chandra Jangir static const char * const led0_groups[] = { 39377a65959SRam Chandra Jangir "gpio16", "gpio36", "gpio60", 39477a65959SRam Chandra Jangir }; 39577a65959SRam Chandra Jangir static const char * const led1_groups[] = { 39677a65959SRam Chandra Jangir "gpio17", "gpio37", "gpio61", 39777a65959SRam Chandra Jangir }; 39877a65959SRam Chandra Jangir static const char * const led2_groups[] = { 39977a65959SRam Chandra Jangir "gpio36", "gpio38", "gpio58", 40077a65959SRam Chandra Jangir }; 40177a65959SRam Chandra Jangir static const char * const led3_groups[] = { 40277a65959SRam Chandra Jangir "gpio39", 40377a65959SRam Chandra Jangir }; 40477a65959SRam Chandra Jangir static const char * const led4_groups[] = { 40577a65959SRam Chandra Jangir "gpio40", 40677a65959SRam Chandra Jangir }; 40777a65959SRam Chandra Jangir static const char * const led5_groups[] = { 40877a65959SRam Chandra Jangir "gpio44", 40977a65959SRam Chandra Jangir }; 41077a65959SRam Chandra Jangir static const char * const led6_groups[] = { 41177a65959SRam Chandra Jangir "gpio45", 41277a65959SRam Chandra Jangir }; 41377a65959SRam Chandra Jangir static const char * const led7_groups[] = { 41477a65959SRam Chandra Jangir "gpio46", 41577a65959SRam Chandra Jangir }; 41677a65959SRam Chandra Jangir static const char * const led8_groups[] = { 41777a65959SRam Chandra Jangir "gpio47", 41877a65959SRam Chandra Jangir }; 41977a65959SRam Chandra Jangir static const char * const led9_groups[] = { 42077a65959SRam Chandra Jangir "gpio48", 42177a65959SRam Chandra Jangir }; 42277a65959SRam Chandra Jangir static const char * const led10_groups[] = { 42377a65959SRam Chandra Jangir "gpio49", 42477a65959SRam Chandra Jangir }; 42577a65959SRam Chandra Jangir static const char * const led11_groups[] = { 42677a65959SRam Chandra Jangir "gpio50", 42777a65959SRam Chandra Jangir }; 42877a65959SRam Chandra Jangir static const char * const mdc_groups[] = { 42977a65959SRam Chandra Jangir "gpio7", "gpio52", 43077a65959SRam Chandra Jangir }; 43177a65959SRam Chandra Jangir static const char * const mdio_groups[] = { 43277a65959SRam Chandra Jangir "gpio6", "gpio53", 43377a65959SRam Chandra Jangir }; 43477a65959SRam Chandra Jangir static const char * const pcie_groups[] = { 43577a65959SRam Chandra Jangir "gpio39", "gpio52", 43677a65959SRam Chandra Jangir }; 43777a65959SRam Chandra Jangir static const char * const pmu_groups[] = { 43877a65959SRam Chandra Jangir "gpio54", "gpio55", 43977a65959SRam Chandra Jangir }; 44077a65959SRam Chandra Jangir static const char * const prng_rosc_groups[] = { 44177a65959SRam Chandra Jangir "gpio53", 44277a65959SRam Chandra Jangir }; 44377a65959SRam Chandra Jangir static const char * const qpic_groups[] = { 44477a65959SRam Chandra Jangir "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", "gpio57", "gpio58", 44577a65959SRam Chandra Jangir "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", "gpio64", "gpio65", 44677a65959SRam Chandra Jangir "gpio66", "gpio67", "gpio68", "gpio69", 44777a65959SRam Chandra Jangir }; 44877a65959SRam Chandra Jangir static const char * const rgmii_groups[] = { 44977a65959SRam Chandra Jangir "gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", 45077a65959SRam Chandra Jangir "gpio29", "gpio30", "gpio31", "gpio32", "gpio33", 45177a65959SRam Chandra Jangir }; 45277a65959SRam Chandra Jangir static const char * const rmii_groups[] = { 45377a65959SRam Chandra Jangir "gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42", 45477a65959SRam Chandra Jangir "gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49", 45577a65959SRam Chandra Jangir "gpio50", "gpio51", 45677a65959SRam Chandra Jangir }; 45777a65959SRam Chandra Jangir static const char * const sdio_groups[] = { 45877a65959SRam Chandra Jangir "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", "gpio29", 45977a65959SRam Chandra Jangir "gpio30", "gpio31", "gpio32", 46077a65959SRam Chandra Jangir }; 46177a65959SRam Chandra Jangir static const char * const smart0_groups[] = { 46277a65959SRam Chandra Jangir "gpio0", "gpio1", "gpio2", "gpio5", "gpio44", "gpio45", "gpio46", 46377a65959SRam Chandra Jangir "gpio47", 46477a65959SRam Chandra Jangir }; 46577a65959SRam Chandra Jangir static const char * const smart1_groups[] = { 46677a65959SRam Chandra Jangir "gpio8", "gpio9", "gpio16", "gpio17", "gpio58", "gpio59", "gpio60", 46777a65959SRam Chandra Jangir "gpio61", 46877a65959SRam Chandra Jangir }; 46977a65959SRam Chandra Jangir static const char * const smart2_groups[] = { 47077a65959SRam Chandra Jangir "gpio40", "gpio41", "gpio48", "gpio49", 47177a65959SRam Chandra Jangir }; 47277a65959SRam Chandra Jangir static const char * const smart3_groups[] = { 47377a65959SRam Chandra Jangir "gpio58", "gpio59", "gpio60", "gpio61", 47477a65959SRam Chandra Jangir }; 47577a65959SRam Chandra Jangir static const char * const tm_groups[] = { 47677a65959SRam Chandra Jangir "gpio52", "gpio53", "gpio54", "gpio55", "gpio56", "gpio57", "gpio58", 47777a65959SRam Chandra Jangir "gpio59", "gpio60", "gpio61", "gpio62", "gpio63", 47877a65959SRam Chandra Jangir }; 47977a65959SRam Chandra Jangir static const char * const wifi0_groups[] = { 48077a65959SRam Chandra Jangir "gpio37", "gpio40", "gpio41", "gpio42", "gpio50", "gpio51", "gpio52", 48177a65959SRam Chandra Jangir "gpio53", "gpio56", "gpio57", "gpio58", "gpio98", 48277a65959SRam Chandra Jangir }; 48377a65959SRam Chandra Jangir static const char * const wifi1_groups[] = { 48477a65959SRam Chandra Jangir "gpio37", "gpio40", "gpio41", "gpio43", "gpio50", "gpio51", "gpio52", 48577a65959SRam Chandra Jangir "gpio53", "gpio56", "gpio57", "gpio58", "gpio98", 48677a65959SRam Chandra Jangir }; 487e260d2bbSVaradarajan Narayanan 488e260d2bbSVaradarajan Narayanan static const struct msm_function ipq4019_functions[] = { 48977a65959SRam Chandra Jangir FUNCTION(aud_pin), 49077a65959SRam Chandra Jangir FUNCTION(audio_pwm), 491e260d2bbSVaradarajan Narayanan FUNCTION(blsp_i2c0), 492e260d2bbSVaradarajan Narayanan FUNCTION(blsp_i2c1), 493e260d2bbSVaradarajan Narayanan FUNCTION(blsp_spi0), 49477a65959SRam Chandra Jangir FUNCTION(blsp_spi1), 49577a65959SRam Chandra Jangir FUNCTION(blsp_uart0), 49677a65959SRam Chandra Jangir FUNCTION(blsp_uart1), 49777a65959SRam Chandra Jangir FUNCTION(chip_rst), 49877a65959SRam Chandra Jangir FUNCTION(gpio), 49977a65959SRam Chandra Jangir FUNCTION(i2s_rx), 50077a65959SRam Chandra Jangir FUNCTION(i2s_spdif_in), 50177a65959SRam Chandra Jangir FUNCTION(i2s_spdif_out), 50277a65959SRam Chandra Jangir FUNCTION(i2s_td), 50377a65959SRam Chandra Jangir FUNCTION(i2s_tx), 50477a65959SRam Chandra Jangir FUNCTION(jtag), 50577a65959SRam Chandra Jangir FUNCTION(led0), 50677a65959SRam Chandra Jangir FUNCTION(led1), 50777a65959SRam Chandra Jangir FUNCTION(led2), 50877a65959SRam Chandra Jangir FUNCTION(led3), 50977a65959SRam Chandra Jangir FUNCTION(led4), 51077a65959SRam Chandra Jangir FUNCTION(led5), 51177a65959SRam Chandra Jangir FUNCTION(led6), 51277a65959SRam Chandra Jangir FUNCTION(led7), 51377a65959SRam Chandra Jangir FUNCTION(led8), 51477a65959SRam Chandra Jangir FUNCTION(led9), 51577a65959SRam Chandra Jangir FUNCTION(led10), 51677a65959SRam Chandra Jangir FUNCTION(led11), 51777a65959SRam Chandra Jangir FUNCTION(mdc), 51877a65959SRam Chandra Jangir FUNCTION(mdio), 51977a65959SRam Chandra Jangir FUNCTION(pcie), 52077a65959SRam Chandra Jangir FUNCTION(pmu), 52177a65959SRam Chandra Jangir FUNCTION(prng_rosc), 52277a65959SRam Chandra Jangir FUNCTION(qpic), 52377a65959SRam Chandra Jangir FUNCTION(rgmii), 52477a65959SRam Chandra Jangir FUNCTION(rmii), 52577a65959SRam Chandra Jangir FUNCTION(sdio), 52677a65959SRam Chandra Jangir FUNCTION(smart0), 52777a65959SRam Chandra Jangir FUNCTION(smart1), 52877a65959SRam Chandra Jangir FUNCTION(smart2), 52977a65959SRam Chandra Jangir FUNCTION(smart3), 53077a65959SRam Chandra Jangir FUNCTION(tm), 53177a65959SRam Chandra Jangir FUNCTION(wifi0), 53277a65959SRam Chandra Jangir FUNCTION(wifi1), 533e260d2bbSVaradarajan Narayanan }; 534e260d2bbSVaradarajan Narayanan 535e260d2bbSVaradarajan Narayanan static const struct msm_pingroup ipq4019_groups[] = { 53677a65959SRam Chandra Jangir PINGROUP(0, jtag, smart0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 53777a65959SRam Chandra Jangir NA, NA), 53877a65959SRam Chandra Jangir PINGROUP(1, jtag, smart0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 53977a65959SRam Chandra Jangir NA, NA), 54077a65959SRam Chandra Jangir PINGROUP(2, jtag, smart0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 54177a65959SRam Chandra Jangir NA, NA), 54277a65959SRam Chandra Jangir PINGROUP(3, jtag, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 54377a65959SRam Chandra Jangir PINGROUP(4, jtag, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 54477a65959SRam Chandra Jangir PINGROUP(5, jtag, smart0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 54577a65959SRam Chandra Jangir NA), 54677a65959SRam Chandra Jangir PINGROUP(6, mdio, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 54777a65959SRam Chandra Jangir PINGROUP(7, mdc, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 54877a65959SRam Chandra Jangir PINGROUP(8, blsp_uart1, NA, NA, smart1, NA, NA, NA, NA, NA, NA, NA, 54977a65959SRam Chandra Jangir NA, NA, NA), 55077a65959SRam Chandra Jangir PINGROUP(9, blsp_uart1, NA, NA, smart1, NA, NA, NA, NA, NA, NA, NA, 55177a65959SRam Chandra Jangir NA, NA, NA), 55277a65959SRam Chandra Jangir PINGROUP(10, blsp_uart1, NA, NA, blsp_i2c0, NA, NA, NA, NA, NA, NA, NA, 55377a65959SRam Chandra Jangir NA, NA, NA), 55477a65959SRam Chandra Jangir PINGROUP(11, blsp_uart1, NA, NA, blsp_i2c0, NA, NA, NA, NA, NA, NA, NA, 55577a65959SRam Chandra Jangir NA, NA, NA), 55677a65959SRam Chandra Jangir PINGROUP(12, blsp_spi0, blsp_i2c1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 55777a65959SRam Chandra Jangir NA, NA, NA), 55877a65959SRam Chandra Jangir PINGROUP(13, blsp_spi0, blsp_i2c1, NA, NA, NA, NA, NA, NA, NA, NA, NA, 55977a65959SRam Chandra Jangir NA, NA, NA), 56077a65959SRam Chandra Jangir PINGROUP(14, blsp_spi0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 56177a65959SRam Chandra Jangir NA), 56277a65959SRam Chandra Jangir PINGROUP(15, blsp_spi0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 56377a65959SRam Chandra Jangir NA), 56477a65959SRam Chandra Jangir PINGROUP(16, blsp_uart0, led0, smart1, NA, NA, NA, NA, NA, NA, NA, NA, 56577a65959SRam Chandra Jangir NA, NA, NA), 56677a65959SRam Chandra Jangir PINGROUP(17, blsp_uart0, led1, smart1, NA, NA, NA, NA, NA, NA, NA, NA, 56777a65959SRam 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), 57077a65959SRam Chandra Jangir PINGROUP(20, blsp_i2c0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 57177a65959SRam Chandra Jangir NA, NA), 57277a65959SRam Chandra Jangir PINGROUP(21, blsp_i2c0, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 57377a65959SRam Chandra Jangir NA, NA), 57477a65959SRam Chandra Jangir PINGROUP(22, rgmii, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 57577a65959SRam Chandra Jangir NA), 57677a65959SRam Chandra Jangir PINGROUP(23, sdio, rgmii, i2s_rx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 57777a65959SRam Chandra Jangir NA, NA), 57877a65959SRam Chandra Jangir PINGROUP(24, sdio, rgmii, i2s_tx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 57977a65959SRam Chandra Jangir NA, NA), 58077a65959SRam Chandra Jangir PINGROUP(25, sdio, rgmii, i2s_tx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 58177a65959SRam Chandra Jangir NA, NA), 58277a65959SRam Chandra Jangir PINGROUP(26, sdio, rgmii, i2s_tx, NA, NA, NA, NA, NA, NA, NA, NA, NA, 58377a65959SRam Chandra Jangir NA, NA), 58477a65959SRam Chandra Jangir PINGROUP(27, sdio, rgmii, i2s_td, NA, NA, NA, NA, NA, NA, NA, NA, NA, 58577a65959SRam Chandra Jangir NA, NA), 58677a65959SRam Chandra Jangir PINGROUP(28, sdio, rgmii, i2s_td, NA, NA, NA, NA, NA, NA, NA, NA, NA, 58777a65959SRam Chandra Jangir NA, NA), 58877a65959SRam Chandra Jangir PINGROUP(29, sdio, rgmii, i2s_td, NA, NA, NA, NA, NA, NA, NA, NA, NA, 58977a65959SRam Chandra Jangir NA, NA), 59077a65959SRam Chandra Jangir PINGROUP(30, sdio, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, 59177a65959SRam Chandra Jangir NA, NA, NA), 59277a65959SRam Chandra Jangir PINGROUP(31, sdio, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, 59377a65959SRam Chandra Jangir NA, NA, NA), 59477a65959SRam Chandra Jangir PINGROUP(32, sdio, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, 59577a65959SRam Chandra Jangir NA, NA, NA), 59677a65959SRam Chandra Jangir PINGROUP(33, rgmii, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 59777a65959SRam Chandra Jangir NA, NA), 59877a65959SRam Chandra Jangir PINGROUP(34, blsp_i2c1, i2s_spdif_in, NA, NA, NA, NA, NA, NA, NA, NA, 59977a65959SRam Chandra Jangir NA, NA, NA, NA), 60077a65959SRam Chandra Jangir PINGROUP(35, blsp_i2c1, i2s_spdif_out, NA, NA, NA, NA, NA, NA, NA, NA, 60177a65959SRam Chandra Jangir NA, NA, NA, NA), 60277a65959SRam Chandra Jangir PINGROUP(36, rmii, led2, led0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 60377a65959SRam Chandra Jangir NA), 60477a65959SRam Chandra Jangir PINGROUP(37, rmii, wifi0, wifi1, led1, NA, NA, NA, NA, NA, NA, NA, NA, 60577a65959SRam Chandra Jangir NA, NA), 60677a65959SRam Chandra Jangir PINGROUP(38, rmii, led2, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 60777a65959SRam Chandra Jangir NA), 60877a65959SRam Chandra Jangir PINGROUP(39, rmii, pcie, led3, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 60977a65959SRam Chandra Jangir NA), 61077a65959SRam Chandra Jangir PINGROUP(40, rmii, wifi0, wifi1, smart2, led4, NA, NA, NA, NA, NA, NA, 61177a65959SRam Chandra Jangir NA, NA, NA), 61277a65959SRam Chandra Jangir PINGROUP(41, rmii, wifi0, wifi1, smart2, NA, NA, NA, NA, NA, NA, NA, 61377a65959SRam Chandra Jangir NA, NA, NA), 61477a65959SRam Chandra Jangir PINGROUP(42, rmii, wifi0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 61577a65959SRam Chandra Jangir NA), 61677a65959SRam Chandra Jangir PINGROUP(43, rmii, wifi1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 61777a65959SRam Chandra Jangir NA), 61877a65959SRam Chandra Jangir PINGROUP(44, rmii, blsp_spi1, smart0, led5, NA, NA, NA, NA, NA, NA, NA, 61977a65959SRam Chandra Jangir NA, NA, NA), 62077a65959SRam Chandra Jangir PINGROUP(45, rmii, blsp_spi1, blsp_spi0, smart0, led6, NA, NA, NA, NA, 62177a65959SRam Chandra Jangir NA, NA, NA, NA, NA), 62277a65959SRam Chandra Jangir PINGROUP(46, rmii, blsp_spi1, smart0, led7, NA, NA, NA, NA, NA, NA, NA, 62377a65959SRam Chandra Jangir NA, NA, NA), 62477a65959SRam Chandra Jangir PINGROUP(47, rmii, blsp_spi1, smart0, led8, NA, NA, NA, NA, NA, NA, NA, 62577a65959SRam Chandra Jangir NA, NA, NA), 62677a65959SRam Chandra Jangir PINGROUP(48, rmii, aud_pin, smart2, led9, NA, NA, NA, NA, NA, NA, NA, 62777a65959SRam Chandra Jangir NA, NA, NA), 62877a65959SRam Chandra Jangir PINGROUP(49, rmii, aud_pin, smart2, led10, NA, NA, NA, NA, NA, NA, NA, 62977a65959SRam Chandra Jangir NA, NA, NA), 63077a65959SRam Chandra Jangir PINGROUP(50, rmii, aud_pin, wifi0, wifi1, led11, NA, NA, NA, NA, NA, 63177a65959SRam Chandra Jangir NA, NA, NA, NA), 63277a65959SRam Chandra Jangir PINGROUP(51, rmii, aud_pin, wifi0, wifi1, NA, NA, NA, NA, NA, NA, NA, 63377a65959SRam Chandra Jangir NA, NA, NA), 63477a65959SRam Chandra Jangir PINGROUP(52, qpic, mdc, pcie, i2s_tx, NA, NA, NA, tm, wifi0, wifi1, NA, 63577a65959SRam Chandra Jangir NA, NA, NA), 63677a65959SRam Chandra Jangir PINGROUP(53, qpic, mdio, i2s_tx, prng_rosc, NA, tm, wifi0, wifi1, NA, 63777a65959SRam Chandra Jangir NA, NA, NA, NA, NA), 63877a65959SRam Chandra Jangir PINGROUP(54, qpic, blsp_spi0, i2s_td, NA, pmu, NA, NA, NA, tm, NA, NA, 63977a65959SRam Chandra Jangir NA, NA, NA), 64077a65959SRam Chandra Jangir PINGROUP(55, qpic, blsp_spi0, i2s_td, NA, pmu, NA, NA, NA, tm, NA, NA, 64177a65959SRam Chandra Jangir NA, NA, NA), 64277a65959SRam Chandra Jangir PINGROUP(56, qpic, blsp_spi0, i2s_td, NA, NA, tm, wifi0, wifi1, NA, NA, 64377a65959SRam Chandra Jangir NA, NA, NA, NA), 64477a65959SRam Chandra Jangir PINGROUP(57, qpic, blsp_spi0, i2s_tx, NA, NA, tm, wifi0, wifi1, NA, NA, 64577a65959SRam Chandra Jangir NA, NA, NA, NA), 64677a65959SRam Chandra Jangir PINGROUP(58, qpic, led2, blsp_i2c0, smart3, smart1, i2s_rx, NA, NA, tm, 64777a65959SRam Chandra Jangir wifi0, wifi1, NA, NA, NA), 64877a65959SRam Chandra Jangir PINGROUP(59, qpic, blsp_i2c0, smart3, smart1, i2s_spdif_in, NA, NA, NA, 64977a65959SRam Chandra Jangir NA, NA, tm, NA, NA, NA), 65077a65959SRam Chandra Jangir PINGROUP(60, qpic, blsp_uart0, smart1, smart3, led0, i2s_tx, i2s_rx, 65177a65959SRam Chandra Jangir NA, NA, NA, NA, NA, tm, NA), 65277a65959SRam Chandra Jangir PINGROUP(61, qpic, blsp_uart0, smart1, smart3, led1, i2s_tx, i2s_rx, 65377a65959SRam Chandra Jangir NA, NA, NA, NA, NA, tm, NA), 65477a65959SRam Chandra Jangir PINGROUP(62, qpic, chip_rst, NA, NA, i2s_spdif_out, NA, NA, NA, NA, NA, 65577a65959SRam Chandra Jangir tm, NA, NA, NA), 65677a65959SRam Chandra Jangir PINGROUP(63, qpic, NA, NA, NA, i2s_td, i2s_rx, i2s_spdif_out, 65777a65959SRam Chandra Jangir i2s_spdif_in, NA, NA, NA, NA, tm, NA), 65877a65959SRam Chandra Jangir PINGROUP(64, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 65977a65959SRam Chandra Jangir NA, NA), 66077a65959SRam Chandra Jangir PINGROUP(65, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 66177a65959SRam Chandra Jangir NA, NA), 66277a65959SRam Chandra Jangir PINGROUP(66, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 66377a65959SRam Chandra Jangir NA, NA), 66477a65959SRam Chandra Jangir PINGROUP(67, qpic, audio_pwm, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 66577a65959SRam Chandra Jangir NA, NA), 66677a65959SRam Chandra Jangir PINGROUP(68, qpic, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA), 66777a65959SRam 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), 69677a65959SRam Chandra Jangir PINGROUP(98, wifi0, wifi1, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 69777a65959SRam 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, 709*83cf5faeSRam Chandra Jangir .pull_no_keeper = true, 710e260d2bbSVaradarajan Narayanan }; 711e260d2bbSVaradarajan Narayanan 712e260d2bbSVaradarajan Narayanan static int ipq4019_pinctrl_probe(struct platform_device *pdev) 713e260d2bbSVaradarajan Narayanan { 714e260d2bbSVaradarajan Narayanan return msm_pinctrl_probe(pdev, &ipq4019_pinctrl); 715e260d2bbSVaradarajan Narayanan } 716e260d2bbSVaradarajan Narayanan 717e260d2bbSVaradarajan Narayanan static const struct of_device_id ipq4019_pinctrl_of_match[] = { 718e260d2bbSVaradarajan Narayanan { .compatible = "qcom,ipq4019-pinctrl", }, 719e260d2bbSVaradarajan Narayanan { }, 720e260d2bbSVaradarajan Narayanan }; 721e260d2bbSVaradarajan Narayanan 722e260d2bbSVaradarajan Narayanan static struct platform_driver ipq4019_pinctrl_driver = { 723e260d2bbSVaradarajan Narayanan .driver = { 724e260d2bbSVaradarajan Narayanan .name = "ipq4019-pinctrl", 725e260d2bbSVaradarajan Narayanan .of_match_table = ipq4019_pinctrl_of_match, 726e260d2bbSVaradarajan Narayanan }, 727e260d2bbSVaradarajan Narayanan .probe = ipq4019_pinctrl_probe, 728e260d2bbSVaradarajan Narayanan .remove = msm_pinctrl_remove, 729e260d2bbSVaradarajan Narayanan }; 730e260d2bbSVaradarajan Narayanan 731e260d2bbSVaradarajan Narayanan static int __init ipq4019_pinctrl_init(void) 732e260d2bbSVaradarajan Narayanan { 733e260d2bbSVaradarajan Narayanan return platform_driver_register(&ipq4019_pinctrl_driver); 734e260d2bbSVaradarajan Narayanan } 735e260d2bbSVaradarajan Narayanan arch_initcall(ipq4019_pinctrl_init); 736e260d2bbSVaradarajan Narayanan 737e260d2bbSVaradarajan Narayanan static void __exit ipq4019_pinctrl_exit(void) 738e260d2bbSVaradarajan Narayanan { 739e260d2bbSVaradarajan Narayanan platform_driver_unregister(&ipq4019_pinctrl_driver); 740e260d2bbSVaradarajan Narayanan } 741e260d2bbSVaradarajan Narayanan module_exit(ipq4019_pinctrl_exit); 742e260d2bbSVaradarajan Narayanan 743e260d2bbSVaradarajan Narayanan MODULE_DESCRIPTION("Qualcomm ipq4019 pinctrl driver"); 744e260d2bbSVaradarajan Narayanan MODULE_LICENSE("GPL v2"); 745e260d2bbSVaradarajan Narayanan MODULE_DEVICE_TABLE(of, ipq4019_pinctrl_of_match); 746