File Index
Files and directories
Sign in
FILE

pinctrl-ipq6018.c

File preview with syntax highlighting.

linux-6.19.14/drivers/pinctrl/qcom/pinctrl-ipq6018.c C
   1// SPDX-License-Identifier: GPL-2.0
   2/*
   3 * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
   4 */
   5
   6#include <linux/module.h>
   7#include <linux/of.h>
   8#include <linux/platform_device.h>
   9
  10#include "pinctrl-msm.h"
  11
  12#define REG_SIZE 0x1000
  13#define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9)	\
  14	{					        \
  15		.grp = PINCTRL_PINGROUP("gpio" #id, 	\
  16			gpio##id##_pins, 		\
  17			ARRAY_SIZE(gpio##id##_pins)),	\
  18		.funcs = (int[]){			\
  19			msm_mux_gpio, /* gpio mode */	\
  20			msm_mux_##f1,			\
  21			msm_mux_##f2,			\
  22			msm_mux_##f3,			\
  23			msm_mux_##f4,			\
  24			msm_mux_##f5,			\
  25			msm_mux_##f6,			\
  26			msm_mux_##f7,			\
  27			msm_mux_##f8,			\
  28			msm_mux_##f9			\
  29		},				        \
  30		.nfuncs = 10,				\
  31		.ctl_reg = REG_SIZE * id,			\
  32		.io_reg = 0x4 + REG_SIZE * id,		\
  33		.intr_cfg_reg = 0x8 + REG_SIZE * id,		\
  34		.intr_status_reg = 0xc + REG_SIZE * id,	\
  35		.intr_target_reg = 0x8 + REG_SIZE * id,	\
  36		.mux_bit = 2,			\
  37		.pull_bit = 0,			\
  38		.drv_bit = 6,			\
  39		.oe_bit = 9,			\
  40		.in_bit = 0,			\
  41		.out_bit = 1,			\
  42		.intr_enable_bit = 0,		\
  43		.intr_status_bit = 0,		\
  44		.intr_target_bit = 5,		\
  45		.intr_target_kpss_val = 3,	\
  46		.intr_raw_status_bit = 4,	\
  47		.intr_polarity_bit = 1,		\
  48		.intr_detection_bit = 2,	\
  49		.intr_detection_width = 2,	\
  50	}
  51
  52static const struct pinctrl_pin_desc ipq6018_pins[] = {
  53	PINCTRL_PIN(0, "GPIO_0"),
  54	PINCTRL_PIN(1, "GPIO_1"),
  55	PINCTRL_PIN(2, "GPIO_2"),
  56	PINCTRL_PIN(3, "GPIO_3"),
  57	PINCTRL_PIN(4, "GPIO_4"),
  58	PINCTRL_PIN(5, "GPIO_5"),
  59	PINCTRL_PIN(6, "GPIO_6"),
  60	PINCTRL_PIN(7, "GPIO_7"),
  61	PINCTRL_PIN(8, "GPIO_8"),
  62	PINCTRL_PIN(9, "GPIO_9"),
  63	PINCTRL_PIN(10, "GPIO_10"),
  64	PINCTRL_PIN(11, "GPIO_11"),
  65	PINCTRL_PIN(12, "GPIO_12"),
  66	PINCTRL_PIN(13, "GPIO_13"),
  67	PINCTRL_PIN(14, "GPIO_14"),
  68	PINCTRL_PIN(15, "GPIO_15"),
  69	PINCTRL_PIN(16, "GPIO_16"),
  70	PINCTRL_PIN(17, "GPIO_17"),
  71	PINCTRL_PIN(18, "GPIO_18"),
  72	PINCTRL_PIN(19, "GPIO_19"),
  73	PINCTRL_PIN(20, "GPIO_20"),
  74	PINCTRL_PIN(21, "GPIO_21"),
  75	PINCTRL_PIN(22, "GPIO_22"),
  76	PINCTRL_PIN(23, "GPIO_23"),
  77	PINCTRL_PIN(24, "GPIO_24"),
  78	PINCTRL_PIN(25, "GPIO_25"),
  79	PINCTRL_PIN(26, "GPIO_26"),
  80	PINCTRL_PIN(27, "GPIO_27"),
  81	PINCTRL_PIN(28, "GPIO_28"),
  82	PINCTRL_PIN(29, "GPIO_29"),
  83	PINCTRL_PIN(30, "GPIO_30"),
  84	PINCTRL_PIN(31, "GPIO_31"),
  85	PINCTRL_PIN(32, "GPIO_32"),
  86	PINCTRL_PIN(33, "GPIO_33"),
  87	PINCTRL_PIN(34, "GPIO_34"),
  88	PINCTRL_PIN(35, "GPIO_35"),
  89	PINCTRL_PIN(36, "GPIO_36"),
  90	PINCTRL_PIN(37, "GPIO_37"),
  91	PINCTRL_PIN(38, "GPIO_38"),
  92	PINCTRL_PIN(39, "GPIO_39"),
  93	PINCTRL_PIN(40, "GPIO_40"),
  94	PINCTRL_PIN(41, "GPIO_41"),
  95	PINCTRL_PIN(42, "GPIO_42"),
  96	PINCTRL_PIN(43, "GPIO_43"),
  97	PINCTRL_PIN(44, "GPIO_44"),
  98	PINCTRL_PIN(45, "GPIO_45"),
  99	PINCTRL_PIN(46, "GPIO_46"),
 100	PINCTRL_PIN(47, "GPIO_47"),
 101	PINCTRL_PIN(48, "GPIO_48"),
 102	PINCTRL_PIN(49, "GPIO_49"),
 103	PINCTRL_PIN(50, "GPIO_50"),
 104	PINCTRL_PIN(51, "GPIO_51"),
 105	PINCTRL_PIN(52, "GPIO_52"),
 106	PINCTRL_PIN(53, "GPIO_53"),
 107	PINCTRL_PIN(54, "GPIO_54"),
 108	PINCTRL_PIN(55, "GPIO_55"),
 109	PINCTRL_PIN(56, "GPIO_56"),
 110	PINCTRL_PIN(57, "GPIO_57"),
 111	PINCTRL_PIN(58, "GPIO_58"),
 112	PINCTRL_PIN(59, "GPIO_59"),
 113	PINCTRL_PIN(60, "GPIO_60"),
 114	PINCTRL_PIN(61, "GPIO_61"),
 115	PINCTRL_PIN(62, "GPIO_62"),
 116	PINCTRL_PIN(63, "GPIO_63"),
 117	PINCTRL_PIN(64, "GPIO_64"),
 118	PINCTRL_PIN(65, "GPIO_65"),
 119	PINCTRL_PIN(66, "GPIO_66"),
 120	PINCTRL_PIN(67, "GPIO_67"),
 121	PINCTRL_PIN(68, "GPIO_68"),
 122	PINCTRL_PIN(69, "GPIO_69"),
 123	PINCTRL_PIN(70, "GPIO_70"),
 124	PINCTRL_PIN(71, "GPIO_71"),
 125	PINCTRL_PIN(72, "GPIO_72"),
 126	PINCTRL_PIN(73, "GPIO_73"),
 127	PINCTRL_PIN(74, "GPIO_74"),
 128	PINCTRL_PIN(75, "GPIO_75"),
 129	PINCTRL_PIN(76, "GPIO_76"),
 130	PINCTRL_PIN(77, "GPIO_77"),
 131	PINCTRL_PIN(78, "GPIO_78"),
 132	PINCTRL_PIN(79, "GPIO_79"),
 133};
 134
 135#define DECLARE_MSM_GPIO_PINS(pin) \
 136	static const unsigned int gpio##pin##_pins[] = { pin }
 137DECLARE_MSM_GPIO_PINS(0);
 138DECLARE_MSM_GPIO_PINS(1);
 139DECLARE_MSM_GPIO_PINS(2);
 140DECLARE_MSM_GPIO_PINS(3);
 141DECLARE_MSM_GPIO_PINS(4);
 142DECLARE_MSM_GPIO_PINS(5);
 143DECLARE_MSM_GPIO_PINS(6);
 144DECLARE_MSM_GPIO_PINS(7);
 145DECLARE_MSM_GPIO_PINS(8);
 146DECLARE_MSM_GPIO_PINS(9);
 147DECLARE_MSM_GPIO_PINS(10);
 148DECLARE_MSM_GPIO_PINS(11);
 149DECLARE_MSM_GPIO_PINS(12);
 150DECLARE_MSM_GPIO_PINS(13);
 151DECLARE_MSM_GPIO_PINS(14);
 152DECLARE_MSM_GPIO_PINS(15);
 153DECLARE_MSM_GPIO_PINS(16);
 154DECLARE_MSM_GPIO_PINS(17);
 155DECLARE_MSM_GPIO_PINS(18);
 156DECLARE_MSM_GPIO_PINS(19);
 157DECLARE_MSM_GPIO_PINS(20);
 158DECLARE_MSM_GPIO_PINS(21);
 159DECLARE_MSM_GPIO_PINS(22);
 160DECLARE_MSM_GPIO_PINS(23);
 161DECLARE_MSM_GPIO_PINS(24);
 162DECLARE_MSM_GPIO_PINS(25);
 163DECLARE_MSM_GPIO_PINS(26);
 164DECLARE_MSM_GPIO_PINS(27);
 165DECLARE_MSM_GPIO_PINS(28);
 166DECLARE_MSM_GPIO_PINS(29);
 167DECLARE_MSM_GPIO_PINS(30);
 168DECLARE_MSM_GPIO_PINS(31);
 169DECLARE_MSM_GPIO_PINS(32);
 170DECLARE_MSM_GPIO_PINS(33);
 171DECLARE_MSM_GPIO_PINS(34);
 172DECLARE_MSM_GPIO_PINS(35);
 173DECLARE_MSM_GPIO_PINS(36);
 174DECLARE_MSM_GPIO_PINS(37);
 175DECLARE_MSM_GPIO_PINS(38);
 176DECLARE_MSM_GPIO_PINS(39);
 177DECLARE_MSM_GPIO_PINS(40);
 178DECLARE_MSM_GPIO_PINS(41);
 179DECLARE_MSM_GPIO_PINS(42);
 180DECLARE_MSM_GPIO_PINS(43);
 181DECLARE_MSM_GPIO_PINS(44);
 182DECLARE_MSM_GPIO_PINS(45);
 183DECLARE_MSM_GPIO_PINS(46);
 184DECLARE_MSM_GPIO_PINS(47);
 185DECLARE_MSM_GPIO_PINS(48);
 186DECLARE_MSM_GPIO_PINS(49);
 187DECLARE_MSM_GPIO_PINS(50);
 188DECLARE_MSM_GPIO_PINS(51);
 189DECLARE_MSM_GPIO_PINS(52);
 190DECLARE_MSM_GPIO_PINS(53);
 191DECLARE_MSM_GPIO_PINS(54);
 192DECLARE_MSM_GPIO_PINS(55);
 193DECLARE_MSM_GPIO_PINS(56);
 194DECLARE_MSM_GPIO_PINS(57);
 195DECLARE_MSM_GPIO_PINS(58);
 196DECLARE_MSM_GPIO_PINS(59);
 197DECLARE_MSM_GPIO_PINS(60);
 198DECLARE_MSM_GPIO_PINS(61);
 199DECLARE_MSM_GPIO_PINS(62);
 200DECLARE_MSM_GPIO_PINS(63);
 201DECLARE_MSM_GPIO_PINS(64);
 202DECLARE_MSM_GPIO_PINS(65);
 203DECLARE_MSM_GPIO_PINS(66);
 204DECLARE_MSM_GPIO_PINS(67);
 205DECLARE_MSM_GPIO_PINS(68);
 206DECLARE_MSM_GPIO_PINS(69);
 207DECLARE_MSM_GPIO_PINS(70);
 208DECLARE_MSM_GPIO_PINS(71);
 209DECLARE_MSM_GPIO_PINS(72);
 210DECLARE_MSM_GPIO_PINS(73);
 211DECLARE_MSM_GPIO_PINS(74);
 212DECLARE_MSM_GPIO_PINS(75);
 213DECLARE_MSM_GPIO_PINS(76);
 214DECLARE_MSM_GPIO_PINS(77);
 215DECLARE_MSM_GPIO_PINS(78);
 216DECLARE_MSM_GPIO_PINS(79);
 217
 218enum ipq6018_functions {
 219	msm_mux_atest_char,
 220	msm_mux_atest_char0,
 221	msm_mux_atest_char1,
 222	msm_mux_atest_char2,
 223	msm_mux_atest_char3,
 224	msm_mux_audio0,
 225	msm_mux_audio1,
 226	msm_mux_audio2,
 227	msm_mux_audio3,
 228	msm_mux_audio_rxbclk,
 229	msm_mux_audio_rxfsync,
 230	msm_mux_audio_rxmclk,
 231	msm_mux_audio_rxmclkin,
 232	msm_mux_audio_txbclk,
 233	msm_mux_audio_txfsync,
 234	msm_mux_audio_txmclk,
 235	msm_mux_audio_txmclkin,
 236	msm_mux_blsp0_i2c,
 237	msm_mux_blsp0_spi,
 238	msm_mux_blsp0_uart,
 239	msm_mux_blsp1_i2c,
 240	msm_mux_blsp1_spi,
 241	msm_mux_blsp1_uart,
 242	msm_mux_blsp2_i2c,
 243	msm_mux_blsp2_spi,
 244	msm_mux_blsp2_uart,
 245	msm_mux_blsp3_i2c,
 246	msm_mux_blsp3_spi,
 247	msm_mux_blsp3_uart,
 248	msm_mux_blsp4_i2c,
 249	msm_mux_blsp4_spi,
 250	msm_mux_blsp4_uart,
 251	msm_mux_blsp5_i2c,
 252	msm_mux_blsp5_uart,
 253	msm_mux_burn0,
 254	msm_mux_burn1,
 255	msm_mux_cri_trng,
 256	msm_mux_cri_trng0,
 257	msm_mux_cri_trng1,
 258	msm_mux_cxc0,
 259	msm_mux_cxc1,
 260	msm_mux_dbg_out,
 261	msm_mux_gcc_plltest,
 262	msm_mux_gcc_tlmm,
 263	msm_mux_gpio,
 264	msm_mux_lpass_aud,
 265	msm_mux_lpass_aud0,
 266	msm_mux_lpass_aud1,
 267	msm_mux_lpass_aud2,
 268	msm_mux_lpass_pcm,
 269	msm_mux_lpass_pdm,
 270	msm_mux_mac00,
 271	msm_mux_mac01,
 272	msm_mux_mac10,
 273	msm_mux_mac11,
 274	msm_mux_mac12,
 275	msm_mux_mac13,
 276	msm_mux_mac20,
 277	msm_mux_mac21,
 278	msm_mux_mdc,
 279	msm_mux_mdio,
 280	msm_mux_pcie0_clk,
 281	msm_mux_pcie0_rst,
 282	msm_mux_pcie0_wake,
 283	msm_mux_prng_rosc,
 284	msm_mux_pta1_0,
 285	msm_mux_pta1_1,
 286	msm_mux_pta1_2,
 287	msm_mux_pta2_0,
 288	msm_mux_pta2_1,
 289	msm_mux_pta2_2,
 290	msm_mux_pwm00,
 291	msm_mux_pwm01,
 292	msm_mux_pwm02,
 293	msm_mux_pwm03,
 294	msm_mux_pwm04,
 295	msm_mux_pwm10,
 296	msm_mux_pwm11,
 297	msm_mux_pwm12,
 298	msm_mux_pwm13,
 299	msm_mux_pwm14,
 300	msm_mux_pwm20,
 301	msm_mux_pwm21,
 302	msm_mux_pwm22,
 303	msm_mux_pwm23,
 304	msm_mux_pwm24,
 305	msm_mux_pwm30,
 306	msm_mux_pwm31,
 307	msm_mux_pwm32,
 308	msm_mux_pwm33,
 309	msm_mux_qdss_cti_trig_in_a0,
 310	msm_mux_qdss_cti_trig_in_a1,
 311	msm_mux_qdss_cti_trig_out_a0,
 312	msm_mux_qdss_cti_trig_out_a1,
 313	msm_mux_qdss_cti_trig_in_b0,
 314	msm_mux_qdss_cti_trig_in_b1,
 315	msm_mux_qdss_cti_trig_out_b0,
 316	msm_mux_qdss_cti_trig_out_b1,
 317	msm_mux_qdss_traceclk_a,
 318	msm_mux_qdss_tracectl_a,
 319	msm_mux_qdss_tracedata_a,
 320	msm_mux_qdss_traceclk_b,
 321	msm_mux_qdss_tracectl_b,
 322	msm_mux_qdss_tracedata_b,
 323	msm_mux_qpic_pad,
 324	msm_mux_rx0,
 325	msm_mux_rx1,
 326	msm_mux_rx_swrm,
 327	msm_mux_rx_swrm0,
 328	msm_mux_rx_swrm1,
 329	msm_mux_sd_card,
 330	msm_mux_sd_write,
 331	msm_mux_tsens_max,
 332	msm_mux_tx_swrm,
 333	msm_mux_tx_swrm0,
 334	msm_mux_tx_swrm1,
 335	msm_mux_tx_swrm2,
 336	msm_mux_wci20,
 337	msm_mux_wci21,
 338	msm_mux_wci22,
 339	msm_mux_wci23,
 340	msm_mux_wsa_swrm,
 341	msm_mux__,
 342};
 343
 344static const char * const blsp3_uart_groups[] = {
 345	"gpio73", "gpio74", "gpio75", "gpio76",
 346};
 347
 348static const char * const blsp3_i2c_groups[] = {
 349	"gpio73", "gpio74",
 350};
 351
 352static const char * const blsp3_spi_groups[] = {
 353	"gpio73", "gpio74", "gpio75", "gpio76", "gpio77", "gpio78", "gpio79",
 354};
 355
 356static const char * const wci20_groups[] = {
 357	"gpio0", "gpio2",
 358};
 359
 360static const char * const qpic_pad_groups[] = {
 361	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio9", "gpio10",
 362	"gpio11", "gpio17", "gpio15", "gpio12", "gpio13", "gpio14", "gpio5",
 363	"gpio6", "gpio7", "gpio8",
 364};
 365
 366static const char * const burn0_groups[] = {
 367	"gpio0",
 368};
 369
 370static const char * const mac12_groups[] = {
 371	"gpio1", "gpio11",
 372};
 373
 374static const char * const qdss_tracectl_b_groups[] = {
 375	"gpio1",
 376};
 377
 378static const char * const burn1_groups[] = {
 379	"gpio1",
 380};
 381
 382static const char * const qdss_traceclk_b_groups[] = {
 383	"gpio0",
 384};
 385
 386static const char * const qdss_tracedata_b_groups[] = {
 387	"gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7", "gpio8", "gpio9",
 388	"gpio10", "gpio11", "gpio12", "gpio13", "gpio14", "gpio15", "gpio16",
 389	"gpio17",
 390};
 391
 392static const char * const mac01_groups[] = {
 393	"gpio3", "gpio4",
 394};
 395
 396static const char * const mac21_groups[] = {
 397	"gpio5", "gpio6",
 398};
 399
 400static const char * const atest_char_groups[] = {
 401	"gpio9",
 402};
 403
 404static const char * const cxc0_groups[] = {
 405	"gpio9", "gpio16",
 406};
 407
 408static const char * const mac13_groups[] = {
 409	"gpio9", "gpio16",
 410};
 411
 412static const char * const dbg_out_groups[] = {
 413	"gpio9",
 414};
 415
 416static const char * const wci22_groups[] = {
 417	"gpio11", "gpio17",
 418};
 419
 420static const char * const pwm00_groups[] = {
 421	"gpio18",
 422};
 423
 424static const char * const atest_char0_groups[] = {
 425	"gpio18",
 426};
 427
 428static const char * const wci23_groups[] = {
 429	"gpio18", "gpio19",
 430};
 431
 432static const char * const mac11_groups[] = {
 433	"gpio18", "gpio19",
 434};
 435
 436static const char * const pwm10_groups[] = {
 437	"gpio19",
 438};
 439
 440static const char * const atest_char1_groups[] = {
 441	"gpio19",
 442};
 443
 444static const char * const pwm20_groups[] = {
 445	"gpio20",
 446};
 447
 448static const char * const atest_char2_groups[] = {
 449	"gpio20",
 450};
 451
 452static const char * const pwm30_groups[] = {
 453	"gpio21",
 454};
 455
 456static const char * const atest_char3_groups[] = {
 457	"gpio21",
 458};
 459
 460static const char * const audio_txmclk_groups[] = {
 461	"gpio22",
 462};
 463
 464static const char * const audio_txmclkin_groups[] = {
 465	"gpio22",
 466};
 467
 468static const char * const pwm02_groups[] = {
 469	"gpio22",
 470};
 471
 472static const char * const tx_swrm0_groups[] = {
 473	"gpio22",
 474};
 475
 476static const char * const qdss_cti_trig_out_b0_groups[] = {
 477	"gpio22",
 478};
 479
 480static const char * const audio_txbclk_groups[] = {
 481	"gpio23",
 482};
 483
 484static const char * const pwm12_groups[] = {
 485	"gpio23",
 486};
 487
 488static const char * const wsa_swrm_groups[] = {
 489	"gpio23", "gpio24",
 490};
 491
 492static const char * const tx_swrm1_groups[] = {
 493	"gpio23",
 494};
 495
 496static const char * const qdss_cti_trig_in_b0_groups[] = {
 497	"gpio23",
 498};
 499
 500static const char * const audio_txfsync_groups[] = {
 501	"gpio24",
 502};
 503
 504static const char * const pwm22_groups[] = {
 505	"gpio24",
 506};
 507
 508static const char * const tx_swrm2_groups[] = {
 509	"gpio24",
 510};
 511
 512static const char * const qdss_cti_trig_out_b1_groups[] = {
 513	"gpio24",
 514};
 515
 516static const char * const audio0_groups[] = {
 517	"gpio25", "gpio32",
 518};
 519
 520static const char * const pwm32_groups[] = {
 521	"gpio25",
 522};
 523
 524static const char * const tx_swrm_groups[] = {
 525	"gpio25",
 526};
 527
 528static const char * const qdss_cti_trig_in_b1_groups[] = {
 529	"gpio25",
 530};
 531
 532static const char * const audio1_groups[] = {
 533	"gpio26", "gpio33",
 534};
 535
 536static const char * const pwm04_groups[] = {
 537	"gpio26",
 538};
 539
 540static const char * const audio2_groups[] = {
 541	"gpio27",
 542};
 543
 544static const char * const pwm14_groups[] = {
 545	"gpio27",
 546};
 547
 548static const char * const audio3_groups[] = {
 549	"gpio28",
 550};
 551
 552static const char * const pwm24_groups[] = {
 553	"gpio28",
 554};
 555
 556static const char * const audio_rxmclk_groups[] = {
 557	"gpio29",
 558};
 559
 560static const char * const audio_rxmclkin_groups[] = {
 561	"gpio29",
 562};
 563
 564static const char * const pwm03_groups[] = {
 565	"gpio29",
 566};
 567
 568static const char * const lpass_pdm_groups[] = {
 569	"gpio29", "gpio30", "gpio31", "gpio32",
 570};
 571
 572static const char * const lpass_aud_groups[] = {
 573	"gpio29",
 574};
 575
 576static const char * const qdss_cti_trig_in_a1_groups[] = {
 577	"gpio29",
 578};
 579
 580static const char * const audio_rxbclk_groups[] = {
 581	"gpio30",
 582};
 583
 584static const char * const pwm13_groups[] = {
 585	"gpio30",
 586};
 587
 588static const char * const lpass_aud0_groups[] = {
 589	"gpio30",
 590};
 591
 592static const char * const rx_swrm_groups[] = {
 593	"gpio30",
 594};
 595
 596static const char * const qdss_cti_trig_out_a1_groups[] = {
 597	"gpio30",
 598};
 599
 600static const char * const audio_rxfsync_groups[] = {
 601	"gpio31",
 602};
 603
 604static const char * const pwm23_groups[] = {
 605	"gpio31",
 606};
 607
 608static const char * const lpass_aud1_groups[] = {
 609	"gpio31",
 610};
 611
 612static const char * const rx_swrm0_groups[] = {
 613	"gpio31",
 614};
 615
 616static const char * const qdss_cti_trig_in_a0_groups[] = {
 617	"gpio31",
 618};
 619
 620static const char * const pwm33_groups[] = {
 621	"gpio32",
 622};
 623
 624static const char * const lpass_aud2_groups[] = {
 625	"gpio32",
 626};
 627
 628static const char * const rx_swrm1_groups[] = {
 629	"gpio32",
 630};
 631
 632static const char * const qdss_cti_trig_out_a0_groups[] = {
 633	"gpio32",
 634};
 635
 636static const char * const lpass_pcm_groups[] = {
 637	"gpio34", "gpio35", "gpio36", "gpio37",
 638};
 639
 640static const char * const mac10_groups[] = {
 641	"gpio34", "gpio35",
 642};
 643
 644static const char * const mac00_groups[] = {
 645	"gpio34", "gpio35",
 646};
 647
 648static const char * const mac20_groups[] = {
 649	"gpio36", "gpio37",
 650};
 651
 652static const char * const blsp0_uart_groups[] = {
 653	"gpio38", "gpio39", "gpio40", "gpio41",
 654};
 655
 656static const char * const blsp0_i2c_groups[] = {
 657	"gpio38", "gpio39",
 658};
 659
 660static const char * const blsp0_spi_groups[] = {
 661	"gpio38", "gpio39", "gpio40", "gpio41",
 662};
 663
 664static const char * const blsp2_uart_groups[] = {
 665	"gpio42", "gpio43", "gpio44", "gpio45",
 666};
 667
 668static const char * const blsp2_i2c_groups[] = {
 669	"gpio42", "gpio43",
 670};
 671
 672static const char * const blsp2_spi_groups[] = {
 673	"gpio42", "gpio43", "gpio44", "gpio45",
 674};
 675
 676static const char * const blsp5_i2c_groups[] = {
 677	"gpio46", "gpio47",
 678};
 679
 680static const char * const blsp5_uart_groups[] = {
 681	"gpio48", "gpio49",
 682};
 683
 684static const char * const qdss_traceclk_a_groups[] = {
 685	"gpio48",
 686};
 687
 688static const char * const qdss_tracectl_a_groups[] = {
 689	"gpio49",
 690};
 691
 692static const char * const pwm01_groups[] = {
 693	"gpio50",
 694};
 695
 696static const char * const pta1_1_groups[] = {
 697	"gpio51",
 698};
 699
 700static const char * const pwm11_groups[] = {
 701	"gpio51",
 702};
 703
 704static const char * const rx1_groups[] = {
 705	"gpio51",
 706};
 707
 708static const char * const pta1_2_groups[] = {
 709	"gpio52",
 710};
 711
 712static const char * const pwm21_groups[] = {
 713	"gpio52",
 714};
 715
 716static const char * const pta1_0_groups[] = {
 717	"gpio53",
 718};
 719
 720static const char * const pwm31_groups[] = {
 721	"gpio53",
 722};
 723
 724static const char * const prng_rosc_groups[] = {
 725	"gpio53",
 726};
 727
 728static const char * const blsp4_uart_groups[] = {
 729	"gpio55", "gpio56", "gpio57", "gpio58",
 730};
 731
 732static const char * const blsp4_i2c_groups[] = {
 733	"gpio55", "gpio56",
 734};
 735
 736static const char * const blsp4_spi_groups[] = {
 737	"gpio55", "gpio56", "gpio57", "gpio58",
 738};
 739
 740static const char * const pcie0_clk_groups[] = {
 741	"gpio59",
 742};
 743
 744static const char * const cri_trng0_groups[] = {
 745	"gpio59",
 746};
 747
 748static const char * const pcie0_rst_groups[] = {
 749	"gpio60",
 750};
 751
 752static const char * const cri_trng1_groups[] = {
 753	"gpio60",
 754};
 755
 756static const char * const pcie0_wake_groups[] = {
 757	"gpio61",
 758};
 759
 760static const char * const cri_trng_groups[] = {
 761	"gpio61",
 762};
 763
 764static const char * const sd_card_groups[] = {
 765	"gpio62",
 766};
 767
 768static const char * const sd_write_groups[] = {
 769	"gpio63",
 770};
 771
 772static const char * const rx0_groups[] = {
 773	"gpio63",
 774};
 775
 776static const char * const tsens_max_groups[] = {
 777	"gpio63",
 778};
 779
 780static const char * const mdc_groups[] = {
 781	"gpio64",
 782};
 783
 784static const char * const qdss_tracedata_a_groups[] = {
 785	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
 786	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
 787	"gpio78", "gpio79",
 788};
 789
 790static const char * const mdio_groups[] = {
 791	"gpio65",
 792};
 793
 794static const char * const pta2_0_groups[] = {
 795	"gpio66",
 796};
 797
 798static const char * const wci21_groups[] = {
 799	"gpio66", "gpio68",
 800};
 801
 802static const char * const cxc1_groups[] = {
 803	"gpio66", "gpio68",
 804};
 805
 806static const char * const pta2_1_groups[] = {
 807	"gpio67",
 808};
 809
 810static const char * const pta2_2_groups[] = {
 811	"gpio68",
 812};
 813
 814static const char * const blsp1_uart_groups[] = {
 815	"gpio69", "gpio70", "gpio71", "gpio72",
 816};
 817
 818static const char * const blsp1_i2c_groups[] = {
 819	"gpio69", "gpio70",
 820};
 821
 822static const char * const blsp1_spi_groups[] = {
 823	"gpio69", "gpio70", "gpio71", "gpio72",
 824};
 825
 826static const char * const gcc_plltest_groups[] = {
 827	"gpio69", "gpio71",
 828};
 829
 830static const char * const gcc_tlmm_groups[] = {
 831	"gpio70",
 832};
 833
 834static const char * const gpio_groups[] = {
 835	"gpio0", "gpio1", "gpio2", "gpio3", "gpio4", "gpio5", "gpio6", "gpio7",
 836	"gpio8", "gpio9", "gpio10", "gpio11", "gpio12", "gpio13", "gpio14",
 837	"gpio15", "gpio16", "gpio17", "gpio18", "gpio19", "gpio20", "gpio21",
 838	"gpio22", "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28",
 839	"gpio29", "gpio30", "gpio31", "gpio32", "gpio33", "gpio34", "gpio35",
 840	"gpio36", "gpio37", "gpio38", "gpio39", "gpio40", "gpio41", "gpio42",
 841	"gpio43", "gpio44", "gpio45", "gpio46", "gpio47", "gpio48", "gpio49",
 842	"gpio50", "gpio51", "gpio52", "gpio53", "gpio54", "gpio55", "gpio56",
 843	"gpio57", "gpio58", "gpio59", "gpio60", "gpio61", "gpio62", "gpio63",
 844	"gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69", "gpio70",
 845	"gpio71", "gpio72", "gpio73", "gpio74", "gpio75", "gpio76", "gpio77",
 846	"gpio78", "gpio79",
 847};
 848
 849static const struct pinfunction ipq6018_functions[] = {
 850	MSM_PIN_FUNCTION(atest_char),
 851	MSM_PIN_FUNCTION(atest_char0),
 852	MSM_PIN_FUNCTION(atest_char1),
 853	MSM_PIN_FUNCTION(atest_char2),
 854	MSM_PIN_FUNCTION(atest_char3),
 855	MSM_PIN_FUNCTION(audio0),
 856	MSM_PIN_FUNCTION(audio1),
 857	MSM_PIN_FUNCTION(audio2),
 858	MSM_PIN_FUNCTION(audio3),
 859	MSM_PIN_FUNCTION(audio_rxbclk),
 860	MSM_PIN_FUNCTION(audio_rxfsync),
 861	MSM_PIN_FUNCTION(audio_rxmclk),
 862	MSM_PIN_FUNCTION(audio_rxmclkin),
 863	MSM_PIN_FUNCTION(audio_txbclk),
 864	MSM_PIN_FUNCTION(audio_txfsync),
 865	MSM_PIN_FUNCTION(audio_txmclk),
 866	MSM_PIN_FUNCTION(audio_txmclkin),
 867	MSM_PIN_FUNCTION(blsp0_i2c),
 868	MSM_PIN_FUNCTION(blsp0_spi),
 869	MSM_PIN_FUNCTION(blsp0_uart),
 870	MSM_PIN_FUNCTION(blsp1_i2c),
 871	MSM_PIN_FUNCTION(blsp1_spi),
 872	MSM_PIN_FUNCTION(blsp1_uart),
 873	MSM_PIN_FUNCTION(blsp2_i2c),
 874	MSM_PIN_FUNCTION(blsp2_spi),
 875	MSM_PIN_FUNCTION(blsp2_uart),
 876	MSM_PIN_FUNCTION(blsp3_i2c),
 877	MSM_PIN_FUNCTION(blsp3_spi),
 878	MSM_PIN_FUNCTION(blsp3_uart),
 879	MSM_PIN_FUNCTION(blsp4_i2c),
 880	MSM_PIN_FUNCTION(blsp4_spi),
 881	MSM_PIN_FUNCTION(blsp4_uart),
 882	MSM_PIN_FUNCTION(blsp5_i2c),
 883	MSM_PIN_FUNCTION(blsp5_uart),
 884	MSM_PIN_FUNCTION(burn0),
 885	MSM_PIN_FUNCTION(burn1),
 886	MSM_PIN_FUNCTION(cri_trng),
 887	MSM_PIN_FUNCTION(cri_trng0),
 888	MSM_PIN_FUNCTION(cri_trng1),
 889	MSM_PIN_FUNCTION(cxc0),
 890	MSM_PIN_FUNCTION(cxc1),
 891	MSM_PIN_FUNCTION(dbg_out),
 892	MSM_PIN_FUNCTION(gcc_plltest),
 893	MSM_PIN_FUNCTION(gcc_tlmm),
 894	MSM_GPIO_PIN_FUNCTION(gpio),
 895	MSM_PIN_FUNCTION(lpass_aud),
 896	MSM_PIN_FUNCTION(lpass_aud0),
 897	MSM_PIN_FUNCTION(lpass_aud1),
 898	MSM_PIN_FUNCTION(lpass_aud2),
 899	MSM_PIN_FUNCTION(lpass_pcm),
 900	MSM_PIN_FUNCTION(lpass_pdm),
 901	MSM_PIN_FUNCTION(mac00),
 902	MSM_PIN_FUNCTION(mac01),
 903	MSM_PIN_FUNCTION(mac10),
 904	MSM_PIN_FUNCTION(mac11),
 905	MSM_PIN_FUNCTION(mac12),
 906	MSM_PIN_FUNCTION(mac13),
 907	MSM_PIN_FUNCTION(mac20),
 908	MSM_PIN_FUNCTION(mac21),
 909	MSM_PIN_FUNCTION(mdc),
 910	MSM_PIN_FUNCTION(mdio),
 911	MSM_PIN_FUNCTION(pcie0_clk),
 912	MSM_PIN_FUNCTION(pcie0_rst),
 913	MSM_PIN_FUNCTION(pcie0_wake),
 914	MSM_PIN_FUNCTION(prng_rosc),
 915	MSM_PIN_FUNCTION(pta1_0),
 916	MSM_PIN_FUNCTION(pta1_1),
 917	MSM_PIN_FUNCTION(pta1_2),
 918	MSM_PIN_FUNCTION(pta2_0),
 919	MSM_PIN_FUNCTION(pta2_1),
 920	MSM_PIN_FUNCTION(pta2_2),
 921	MSM_PIN_FUNCTION(pwm00),
 922	MSM_PIN_FUNCTION(pwm01),
 923	MSM_PIN_FUNCTION(pwm02),
 924	MSM_PIN_FUNCTION(pwm03),
 925	MSM_PIN_FUNCTION(pwm04),
 926	MSM_PIN_FUNCTION(pwm10),
 927	MSM_PIN_FUNCTION(pwm11),
 928	MSM_PIN_FUNCTION(pwm12),
 929	MSM_PIN_FUNCTION(pwm13),
 930	MSM_PIN_FUNCTION(pwm14),
 931	MSM_PIN_FUNCTION(pwm20),
 932	MSM_PIN_FUNCTION(pwm21),
 933	MSM_PIN_FUNCTION(pwm22),
 934	MSM_PIN_FUNCTION(pwm23),
 935	MSM_PIN_FUNCTION(pwm24),
 936	MSM_PIN_FUNCTION(pwm30),
 937	MSM_PIN_FUNCTION(pwm31),
 938	MSM_PIN_FUNCTION(pwm32),
 939	MSM_PIN_FUNCTION(pwm33),
 940	MSM_PIN_FUNCTION(qdss_cti_trig_in_a0),
 941	MSM_PIN_FUNCTION(qdss_cti_trig_in_a1),
 942	MSM_PIN_FUNCTION(qdss_cti_trig_out_a0),
 943	MSM_PIN_FUNCTION(qdss_cti_trig_out_a1),
 944	MSM_PIN_FUNCTION(qdss_cti_trig_in_b0),
 945	MSM_PIN_FUNCTION(qdss_cti_trig_in_b1),
 946	MSM_PIN_FUNCTION(qdss_cti_trig_out_b0),
 947	MSM_PIN_FUNCTION(qdss_cti_trig_out_b1),
 948	MSM_PIN_FUNCTION(qdss_traceclk_a),
 949	MSM_PIN_FUNCTION(qdss_tracectl_a),
 950	MSM_PIN_FUNCTION(qdss_tracedata_a),
 951	MSM_PIN_FUNCTION(qdss_traceclk_b),
 952	MSM_PIN_FUNCTION(qdss_tracectl_b),
 953	MSM_PIN_FUNCTION(qdss_tracedata_b),
 954	MSM_PIN_FUNCTION(qpic_pad),
 955	MSM_PIN_FUNCTION(rx0),
 956	MSM_PIN_FUNCTION(rx1),
 957	MSM_PIN_FUNCTION(rx_swrm),
 958	MSM_PIN_FUNCTION(rx_swrm0),
 959	MSM_PIN_FUNCTION(rx_swrm1),
 960	MSM_PIN_FUNCTION(sd_card),
 961	MSM_PIN_FUNCTION(sd_write),
 962	MSM_PIN_FUNCTION(tsens_max),
 963	MSM_PIN_FUNCTION(tx_swrm),
 964	MSM_PIN_FUNCTION(tx_swrm0),
 965	MSM_PIN_FUNCTION(tx_swrm1),
 966	MSM_PIN_FUNCTION(tx_swrm2),
 967	MSM_PIN_FUNCTION(wci20),
 968	MSM_PIN_FUNCTION(wci21),
 969	MSM_PIN_FUNCTION(wci22),
 970	MSM_PIN_FUNCTION(wci23),
 971	MSM_PIN_FUNCTION(wsa_swrm),
 972};
 973
 974static const struct msm_pingroup ipq6018_groups[] = {
 975	PINGROUP(0, qpic_pad, wci20, qdss_traceclk_b, _, burn0, _, _, _, _),
 976	PINGROUP(1, qpic_pad, mac12, qdss_tracectl_b, _, burn1, _, _, _, _),
 977	PINGROUP(2, qpic_pad, wci20, qdss_tracedata_b, _, _, _, _, _, _),
 978	PINGROUP(3, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _),
 979	PINGROUP(4, qpic_pad, mac01, qdss_tracedata_b, _, _, _, _, _, _),
 980	PINGROUP(5, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _),
 981	PINGROUP(6, qpic_pad, mac21, qdss_tracedata_b, _, _, _, _, _, _),
 982	PINGROUP(7, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
 983	PINGROUP(8, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
 984	PINGROUP(9, qpic_pad, atest_char, cxc0, mac13, dbg_out, qdss_tracedata_b, _, _, _),
 985	PINGROUP(10, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
 986	PINGROUP(11, qpic_pad, wci22, mac12, qdss_tracedata_b, _, _, _, _, _),
 987	PINGROUP(12, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
 988	PINGROUP(13, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
 989	PINGROUP(14, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
 990	PINGROUP(15, qpic_pad, qdss_tracedata_b, _, _, _, _, _, _, _),
 991	PINGROUP(16, qpic_pad, cxc0, mac13, qdss_tracedata_b, _, _, _, _, _),
 992	PINGROUP(17, qpic_pad, qdss_tracedata_b, wci22, _, _, _, _, _, _),
 993	PINGROUP(18, pwm00, atest_char0, wci23, mac11, _, _, _, _, _),
 994	PINGROUP(19, pwm10, atest_char1, wci23, mac11, _, _, _, _, _),
 995	PINGROUP(20, pwm20, atest_char2, _, _, _, _, _, _, _),
 996	PINGROUP(21, pwm30, atest_char3, _, _, _, _, _, _, _),
 997	PINGROUP(22, audio_txmclk, audio_txmclkin, pwm02, tx_swrm0, _, qdss_cti_trig_out_b0, _, _, _),
 998	PINGROUP(23, audio_txbclk, pwm12, wsa_swrm, tx_swrm1, _, qdss_cti_trig_in_b0, _, _, _),
 999	PINGROUP(24, audio_txfsync, pwm22, wsa_swrm, tx_swrm2, _, qdss_cti_trig_out_b1, _, _, _),
1000	PINGROUP(25, audio0, pwm32, tx_swrm, _, qdss_cti_trig_in_b1, _, _, _, _),
1001	PINGROUP(26, audio1, pwm04, _, _, _, _, _, _, _),
1002	PINGROUP(27, audio2, pwm14, _, _, _, _, _, _, _),
1003	PINGROUP(28, audio3, pwm24, _, _, _, _, _, _, _),
1004	PINGROUP(29, audio_rxmclk, audio_rxmclkin, pwm03, lpass_pdm, lpass_aud, qdss_cti_trig_in_a1, _, _, _),
1005	PINGROUP(30, audio_rxbclk, pwm13, lpass_pdm, lpass_aud0, rx_swrm, _, qdss_cti_trig_out_a1, _, _),
1006	PINGROUP(31, audio_rxfsync, pwm23, lpass_pdm, lpass_aud1, rx_swrm0, _, qdss_cti_trig_in_a0, _, _),
1007	PINGROUP(32, audio0, pwm33, lpass_pdm, lpass_aud2, rx_swrm1, _, qdss_cti_trig_out_a0, _, _),
1008	PINGROUP(33, audio1, _, _, _, _, _, _, _, _),
1009	PINGROUP(34, lpass_pcm, mac10, mac00, _, _, _, _, _, _),
1010	PINGROUP(35, lpass_pcm, mac10, mac00, _, _, _, _, _, _),
1011	PINGROUP(36, lpass_pcm, mac20, _, _, _, _, _, _, _),
1012	PINGROUP(37, lpass_pcm, mac20, _, _, _, _, _, _, _),
1013	PINGROUP(38, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _),
1014	PINGROUP(39, blsp0_uart, blsp0_i2c, blsp0_spi, _, _, _, _, _, _),
1015	PINGROUP(40, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _),
1016	PINGROUP(41, blsp0_uart, blsp0_spi, _, _, _, _, _, _, _),
1017	PINGROUP(42, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _),
1018	PINGROUP(43, blsp2_uart, blsp2_i2c, blsp2_spi, _, _, _, _, _, _),
1019	PINGROUP(44, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _),
1020	PINGROUP(45, blsp2_uart, blsp2_spi, _, _, _, _, _, _, _),
1021	PINGROUP(46, blsp5_i2c, _, _, _, _, _, _, _, _),
1022	PINGROUP(47, blsp5_i2c, _, _, _, _, _, _, _, _),
1023	PINGROUP(48, blsp5_uart, _, qdss_traceclk_a, _, _, _, _, _, _),
1024	PINGROUP(49, blsp5_uart, _, qdss_tracectl_a, _, _, _, _, _, _),
1025	PINGROUP(50, pwm01, _, _, _, _, _, _, _, _),
1026	PINGROUP(51, pta1_1, pwm11, _, rx1, _, _, _, _, _),
1027	PINGROUP(52, pta1_2, pwm21, _, _, _, _, _, _, _),
1028	PINGROUP(53, pta1_0, pwm31, prng_rosc, _, _, _, _, _, _),
1029	PINGROUP(54, _, _, _, _, _, _, _, _, _),
1030	PINGROUP(55, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _),
1031	PINGROUP(56, blsp4_uart, blsp4_i2c, blsp4_spi, _, _, _, _, _, _),
1032	PINGROUP(57, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _),
1033	PINGROUP(58, blsp4_uart, blsp4_spi, _, _, _, _, _, _, _),
1034	PINGROUP(59, pcie0_clk, _, _, cri_trng0, _, _, _, _, _),
1035	PINGROUP(60, pcie0_rst, _, _, cri_trng1, _, _, _, _, _),
1036	PINGROUP(61, pcie0_wake, _, _, cri_trng, _, _, _, _, _),
1037	PINGROUP(62, sd_card, _, _, _, _, _, _, _, _),
1038	PINGROUP(63, sd_write, rx0, _, tsens_max, _, _, _, _, _),
1039	PINGROUP(64, mdc, _, qdss_tracedata_a, _, _, _, _, _, _),
1040	PINGROUP(65, mdio, _, qdss_tracedata_a, _, _, _, _, _, _),
1041	PINGROUP(66, pta2_0, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _),
1042	PINGROUP(67, pta2_1, qdss_tracedata_a, _, _, _, _, _, _, _),
1043	PINGROUP(68, pta2_2, wci21, cxc1, qdss_tracedata_a, _, _, _, _, _),
1044	PINGROUP(69, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _),
1045	PINGROUP(70, blsp1_uart, blsp1_i2c, blsp1_spi, gcc_tlmm, qdss_tracedata_a, _, _, _, _),
1046	PINGROUP(71, blsp1_uart, blsp1_spi, gcc_plltest, qdss_tracedata_a, _, _, _, _, _),
1047	PINGROUP(72, blsp1_uart, blsp1_spi, qdss_tracedata_a, _, _, _, _, _, _),
1048	PINGROUP(73, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _),
1049	PINGROUP(74, blsp3_uart, blsp3_i2c, blsp3_spi, _, qdss_tracedata_a, _, _, _, _),
1050	PINGROUP(75, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _),
1051	PINGROUP(76, blsp3_uart, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _),
1052	PINGROUP(77, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
1053	PINGROUP(78, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
1054	PINGROUP(79, blsp3_spi, _, qdss_tracedata_a, _, _, _, _, _, _),
1055};
1056
1057static const struct msm_pinctrl_soc_data ipq6018_pinctrl = {
1058	.pins = ipq6018_pins,
1059	.npins = ARRAY_SIZE(ipq6018_pins),
1060	.functions = ipq6018_functions,
1061	.nfunctions = ARRAY_SIZE(ipq6018_functions),
1062	.groups = ipq6018_groups,
1063	.ngroups = ARRAY_SIZE(ipq6018_groups),
1064	.ngpios = 80,
1065};
1066
1067static int ipq6018_pinctrl_probe(struct platform_device *pdev)
1068{
1069	return msm_pinctrl_probe(pdev, &ipq6018_pinctrl);
1070}
1071
1072static const struct of_device_id ipq6018_pinctrl_of_match[] = {
1073	{ .compatible = "qcom,ipq6018-pinctrl", },
1074	{ },
1075};
1076
1077static struct platform_driver ipq6018_pinctrl_driver = {
1078	.driver = {
1079		.name = "ipq6018-pinctrl",
1080		.of_match_table = ipq6018_pinctrl_of_match,
1081	},
1082	.probe = ipq6018_pinctrl_probe,
1083};
1084
1085static int __init ipq6018_pinctrl_init(void)
1086{
1087	return platform_driver_register(&ipq6018_pinctrl_driver);
1088}
1089arch_initcall(ipq6018_pinctrl_init);
1090
1091static void __exit ipq6018_pinctrl_exit(void)
1092{
1093	platform_driver_unregister(&ipq6018_pinctrl_driver);
1094}
1095module_exit(ipq6018_pinctrl_exit);
1096
1097MODULE_DESCRIPTION("QTI ipq6018 pinctrl driver");
1098MODULE_LICENSE("GPL v2");
1099MODULE_DEVICE_TABLE(of, ipq6018_pinctrl_of_match);
~/ Read-only file preview.