2020-01-19 16:13:18 +03:00
// SPDX-License-Identifier: GPL-2.0
/*
* Copyright ( c ) 2016 - 2018 , The Linux Foundation . All rights reserved .
*/
# include <linux/module.h>
# include <linux/of.h>
# include <linux/platform_device.h>
# include <linux/pinctrl/pinctrl.h>
# include "pinctrl-msm.h"
# define FUNCTION(fname) \
[ msm_mux_ # # fname ] = { \
. name = # fname , \
. groups = fname # # _groups , \
. ngroups = ARRAY_SIZE ( fname # # _groups ) , \
}
# define REG_SIZE 0x1000
# define PINGROUP(id, f1, f2, f3, f4, f5, f6, f7, f8, f9) \
{ \
. name = " gpio " # id , \
. pins = gpio # # id # # _pins , \
. npins = ( unsigned int ) ARRAY_SIZE ( gpio # # id # # _pins ) , \
. funcs = ( int [ ] ) { \
msm_mux_gpio , /* gpio mode */ \
msm_mux_ # # f1 , \
msm_mux_ # # f2 , \
msm_mux_ # # f3 , \
msm_mux_ # # f4 , \
msm_mux_ # # f5 , \
msm_mux_ # # f6 , \
msm_mux_ # # f7 , \
msm_mux_ # # f8 , \
msm_mux_ # # f9 \
} , \
. nfuncs = 10 , \
. ctl_reg = REG_SIZE * id , \
. io_reg = 0x4 + REG_SIZE * id , \
. intr_cfg_reg = 0x8 + REG_SIZE * id , \
. intr_status_reg = 0xc + REG_SIZE * id , \
. intr_target_reg = 0x8 + REG_SIZE * id , \
. mux_bit = 2 , \
. pull_bit = 0 , \
. drv_bit = 6 , \
. oe_bit = 9 , \
. in_bit = 0 , \
. out_bit = 1 , \
. intr_enable_bit = 0 , \
. intr_status_bit = 0 , \
. intr_target_bit = 5 , \
. intr_target_kpss_val = 3 , \
. intr_raw_status_bit = 4 , \
. intr_polarity_bit = 1 , \
. intr_detection_bit = 2 , \
. intr_detection_width = 2 , \
}
static const struct pinctrl_pin_desc ipq6018_pins [ ] = {
PINCTRL_PIN ( 0 , " GPIO_0 " ) ,
PINCTRL_PIN ( 1 , " GPIO_1 " ) ,
PINCTRL_PIN ( 2 , " GPIO_2 " ) ,
PINCTRL_PIN ( 3 , " GPIO_3 " ) ,
PINCTRL_PIN ( 4 , " GPIO_4 " ) ,
PINCTRL_PIN ( 5 , " GPIO_5 " ) ,
PINCTRL_PIN ( 6 , " GPIO_6 " ) ,
PINCTRL_PIN ( 7 , " GPIO_7 " ) ,
PINCTRL_PIN ( 8 , " GPIO_8 " ) ,
PINCTRL_PIN ( 9 , " GPIO_9 " ) ,
PINCTRL_PIN ( 10 , " GPIO_10 " ) ,
PINCTRL_PIN ( 11 , " GPIO_11 " ) ,
PINCTRL_PIN ( 12 , " GPIO_12 " ) ,
PINCTRL_PIN ( 13 , " GPIO_13 " ) ,
PINCTRL_PIN ( 14 , " GPIO_14 " ) ,
PINCTRL_PIN ( 15 , " GPIO_15 " ) ,
PINCTRL_PIN ( 16 , " GPIO_16 " ) ,
PINCTRL_PIN ( 17 , " GPIO_17 " ) ,
PINCTRL_PIN ( 18 , " GPIO_18 " ) ,
PINCTRL_PIN ( 19 , " GPIO_19 " ) ,
PINCTRL_PIN ( 20 , " GPIO_20 " ) ,
PINCTRL_PIN ( 21 , " GPIO_21 " ) ,
PINCTRL_PIN ( 22 , " GPIO_22 " ) ,
PINCTRL_PIN ( 23 , " GPIO_23 " ) ,
PINCTRL_PIN ( 24 , " GPIO_24 " ) ,
PINCTRL_PIN ( 25 , " GPIO_25 " ) ,
PINCTRL_PIN ( 26 , " GPIO_26 " ) ,
PINCTRL_PIN ( 27 , " GPIO_27 " ) ,
PINCTRL_PIN ( 28 , " GPIO_28 " ) ,
PINCTRL_PIN ( 29 , " GPIO_29 " ) ,
PINCTRL_PIN ( 30 , " GPIO_30 " ) ,
PINCTRL_PIN ( 31 , " GPIO_31 " ) ,
PINCTRL_PIN ( 32 , " GPIO_32 " ) ,
PINCTRL_PIN ( 33 , " GPIO_33 " ) ,
PINCTRL_PIN ( 34 , " GPIO_34 " ) ,
PINCTRL_PIN ( 35 , " GPIO_35 " ) ,
PINCTRL_PIN ( 36 , " GPIO_36 " ) ,
PINCTRL_PIN ( 37 , " GPIO_37 " ) ,
PINCTRL_PIN ( 38 , " GPIO_38 " ) ,
PINCTRL_PIN ( 39 , " GPIO_39 " ) ,
PINCTRL_PIN ( 40 , " GPIO_40 " ) ,
PINCTRL_PIN ( 41 , " GPIO_41 " ) ,
PINCTRL_PIN ( 42 , " GPIO_42 " ) ,
PINCTRL_PIN ( 43 , " GPIO_43 " ) ,
PINCTRL_PIN ( 44 , " GPIO_44 " ) ,
PINCTRL_PIN ( 45 , " GPIO_45 " ) ,
PINCTRL_PIN ( 46 , " GPIO_46 " ) ,
PINCTRL_PIN ( 47 , " GPIO_47 " ) ,
PINCTRL_PIN ( 48 , " GPIO_48 " ) ,
PINCTRL_PIN ( 49 , " GPIO_49 " ) ,
PINCTRL_PIN ( 50 , " GPIO_50 " ) ,
PINCTRL_PIN ( 51 , " GPIO_51 " ) ,
PINCTRL_PIN ( 52 , " GPIO_52 " ) ,
PINCTRL_PIN ( 53 , " GPIO_53 " ) ,
PINCTRL_PIN ( 54 , " GPIO_54 " ) ,
PINCTRL_PIN ( 55 , " GPIO_55 " ) ,
PINCTRL_PIN ( 56 , " GPIO_56 " ) ,
PINCTRL_PIN ( 57 , " GPIO_57 " ) ,
PINCTRL_PIN ( 58 , " GPIO_58 " ) ,
PINCTRL_PIN ( 59 , " GPIO_59 " ) ,
PINCTRL_PIN ( 60 , " GPIO_60 " ) ,
PINCTRL_PIN ( 61 , " GPIO_61 " ) ,
PINCTRL_PIN ( 62 , " GPIO_62 " ) ,
PINCTRL_PIN ( 63 , " GPIO_63 " ) ,
PINCTRL_PIN ( 64 , " GPIO_64 " ) ,
PINCTRL_PIN ( 65 , " GPIO_65 " ) ,
PINCTRL_PIN ( 66 , " GPIO_66 " ) ,
PINCTRL_PIN ( 67 , " GPIO_67 " ) ,
PINCTRL_PIN ( 68 , " GPIO_68 " ) ,
PINCTRL_PIN ( 69 , " GPIO_69 " ) ,
PINCTRL_PIN ( 70 , " GPIO_70 " ) ,
PINCTRL_PIN ( 71 , " GPIO_71 " ) ,
PINCTRL_PIN ( 72 , " GPIO_72 " ) ,
PINCTRL_PIN ( 73 , " GPIO_73 " ) ,
PINCTRL_PIN ( 74 , " GPIO_74 " ) ,
PINCTRL_PIN ( 75 , " GPIO_75 " ) ,
PINCTRL_PIN ( 76 , " GPIO_76 " ) ,
PINCTRL_PIN ( 77 , " GPIO_77 " ) ,
PINCTRL_PIN ( 78 , " GPIO_78 " ) ,
PINCTRL_PIN ( 79 , " GPIO_79 " ) ,
} ;
# define DECLARE_MSM_GPIO_PINS(pin) \
static const unsigned int gpio # # pin # # _pins [ ] = { pin }
DECLARE_MSM_GPIO_PINS ( 0 ) ;
DECLARE_MSM_GPIO_PINS ( 1 ) ;
DECLARE_MSM_GPIO_PINS ( 2 ) ;
DECLARE_MSM_GPIO_PINS ( 3 ) ;
DECLARE_MSM_GPIO_PINS ( 4 ) ;
DECLARE_MSM_GPIO_PINS ( 5 ) ;
DECLARE_MSM_GPIO_PINS ( 6 ) ;
DECLARE_MSM_GPIO_PINS ( 7 ) ;
DECLARE_MSM_GPIO_PINS ( 8 ) ;
DECLARE_MSM_GPIO_PINS ( 9 ) ;
DECLARE_MSM_GPIO_PINS ( 10 ) ;
DECLARE_MSM_GPIO_PINS ( 11 ) ;
DECLARE_MSM_GPIO_PINS ( 12 ) ;
DECLARE_MSM_GPIO_PINS ( 13 ) ;
DECLARE_MSM_GPIO_PINS ( 14 ) ;
DECLARE_MSM_GPIO_PINS ( 15 ) ;
DECLARE_MSM_GPIO_PINS ( 16 ) ;
DECLARE_MSM_GPIO_PINS ( 17 ) ;
DECLARE_MSM_GPIO_PINS ( 18 ) ;
DECLARE_MSM_GPIO_PINS ( 19 ) ;
DECLARE_MSM_GPIO_PINS ( 20 ) ;
DECLARE_MSM_GPIO_PINS ( 21 ) ;
DECLARE_MSM_GPIO_PINS ( 22 ) ;
DECLARE_MSM_GPIO_PINS ( 23 ) ;
DECLARE_MSM_GPIO_PINS ( 24 ) ;
DECLARE_MSM_GPIO_PINS ( 25 ) ;
DECLARE_MSM_GPIO_PINS ( 26 ) ;
DECLARE_MSM_GPIO_PINS ( 27 ) ;
DECLARE_MSM_GPIO_PINS ( 28 ) ;
DECLARE_MSM_GPIO_PINS ( 29 ) ;
DECLARE_MSM_GPIO_PINS ( 30 ) ;
DECLARE_MSM_GPIO_PINS ( 31 ) ;
DECLARE_MSM_GPIO_PINS ( 32 ) ;
DECLARE_MSM_GPIO_PINS ( 33 ) ;
DECLARE_MSM_GPIO_PINS ( 34 ) ;
DECLARE_MSM_GPIO_PINS ( 35 ) ;
DECLARE_MSM_GPIO_PINS ( 36 ) ;
DECLARE_MSM_GPIO_PINS ( 37 ) ;
DECLARE_MSM_GPIO_PINS ( 38 ) ;
DECLARE_MSM_GPIO_PINS ( 39 ) ;
DECLARE_MSM_GPIO_PINS ( 40 ) ;
DECLARE_MSM_GPIO_PINS ( 41 ) ;
DECLARE_MSM_GPIO_PINS ( 42 ) ;
DECLARE_MSM_GPIO_PINS ( 43 ) ;
DECLARE_MSM_GPIO_PINS ( 44 ) ;
DECLARE_MSM_GPIO_PINS ( 45 ) ;
DECLARE_MSM_GPIO_PINS ( 46 ) ;
DECLARE_MSM_GPIO_PINS ( 47 ) ;
DECLARE_MSM_GPIO_PINS ( 48 ) ;
DECLARE_MSM_GPIO_PINS ( 49 ) ;
DECLARE_MSM_GPIO_PINS ( 50 ) ;
DECLARE_MSM_GPIO_PINS ( 51 ) ;
DECLARE_MSM_GPIO_PINS ( 52 ) ;
DECLARE_MSM_GPIO_PINS ( 53 ) ;
DECLARE_MSM_GPIO_PINS ( 54 ) ;
DECLARE_MSM_GPIO_PINS ( 55 ) ;
DECLARE_MSM_GPIO_PINS ( 56 ) ;
DECLARE_MSM_GPIO_PINS ( 57 ) ;
DECLARE_MSM_GPIO_PINS ( 58 ) ;
DECLARE_MSM_GPIO_PINS ( 59 ) ;
DECLARE_MSM_GPIO_PINS ( 60 ) ;
DECLARE_MSM_GPIO_PINS ( 61 ) ;
DECLARE_MSM_GPIO_PINS ( 62 ) ;
DECLARE_MSM_GPIO_PINS ( 63 ) ;
DECLARE_MSM_GPIO_PINS ( 64 ) ;
DECLARE_MSM_GPIO_PINS ( 65 ) ;
DECLARE_MSM_GPIO_PINS ( 66 ) ;
DECLARE_MSM_GPIO_PINS ( 67 ) ;
DECLARE_MSM_GPIO_PINS ( 68 ) ;
DECLARE_MSM_GPIO_PINS ( 69 ) ;
DECLARE_MSM_GPIO_PINS ( 70 ) ;
DECLARE_MSM_GPIO_PINS ( 71 ) ;
DECLARE_MSM_GPIO_PINS ( 72 ) ;
DECLARE_MSM_GPIO_PINS ( 73 ) ;
DECLARE_MSM_GPIO_PINS ( 74 ) ;
DECLARE_MSM_GPIO_PINS ( 75 ) ;
DECLARE_MSM_GPIO_PINS ( 76 ) ;
DECLARE_MSM_GPIO_PINS ( 77 ) ;
DECLARE_MSM_GPIO_PINS ( 78 ) ;
DECLARE_MSM_GPIO_PINS ( 79 ) ;
enum ipq6018_functions {
msm_mux_atest_char ,
msm_mux_atest_char0 ,
msm_mux_atest_char1 ,
msm_mux_atest_char2 ,
msm_mux_atest_char3 ,
msm_mux_audio0 ,
msm_mux_audio1 ,
msm_mux_audio2 ,
msm_mux_audio3 ,
msm_mux_audio_rxbclk ,
msm_mux_audio_rxfsync ,
msm_mux_audio_rxmclk ,
msm_mux_audio_rxmclkin ,
msm_mux_audio_txbclk ,
msm_mux_audio_txfsync ,
msm_mux_audio_txmclk ,
msm_mux_audio_txmclkin ,
msm_mux_blsp0_i2c ,
msm_mux_blsp0_spi ,
msm_mux_blsp0_uart ,
msm_mux_blsp1_i2c ,
msm_mux_blsp1_spi ,
msm_mux_blsp1_uart ,
msm_mux_blsp2_i2c ,
msm_mux_blsp2_spi ,
msm_mux_blsp2_uart ,
msm_mux_blsp3_i2c ,
msm_mux_blsp3_spi ,
msm_mux_blsp3_uart ,
msm_mux_blsp4_i2c ,
msm_mux_blsp4_spi ,
msm_mux_blsp4_uart ,
msm_mux_blsp5_i2c ,
msm_mux_blsp5_uart ,
msm_mux_burn0 ,
msm_mux_burn1 ,
msm_mux_cri_trng ,
msm_mux_cri_trng0 ,
msm_mux_cri_trng1 ,
msm_mux_cxc0 ,
msm_mux_cxc1 ,
msm_mux_dbg_out ,
msm_mux_gcc_plltest ,
msm_mux_gcc_tlmm ,
msm_mux_gpio ,
msm_mux_lpass_aud ,
msm_mux_lpass_aud0 ,
msm_mux_lpass_aud1 ,
msm_mux_lpass_aud2 ,
msm_mux_lpass_pcm ,
msm_mux_lpass_pdm ,
msm_mux_mac00 ,
msm_mux_mac01 ,
msm_mux_mac10 ,
msm_mux_mac11 ,
msm_mux_mac12 ,
msm_mux_mac13 ,
msm_mux_mac20 ,
msm_mux_mac21 ,
msm_mux_mdc ,
msm_mux_mdio ,
msm_mux_pcie0_clk ,
msm_mux_pcie0_rst ,
msm_mux_pcie0_wake ,
msm_mux_prng_rosc ,
msm_mux_pta1_0 ,
msm_mux_pta1_1 ,
msm_mux_pta1_2 ,
msm_mux_pta2_0 ,
msm_mux_pta2_1 ,
msm_mux_pta2_2 ,
msm_mux_pwm00 ,
msm_mux_pwm01 ,
msm_mux_pwm02 ,
msm_mux_pwm03 ,
msm_mux_pwm04 ,
msm_mux_pwm10 ,
msm_mux_pwm11 ,
msm_mux_pwm12 ,
msm_mux_pwm13 ,
msm_mux_pwm14 ,
msm_mux_pwm20 ,
msm_mux_pwm21 ,
msm_mux_pwm22 ,
msm_mux_pwm23 ,
msm_mux_pwm24 ,
msm_mux_pwm30 ,
msm_mux_pwm31 ,
msm_mux_pwm32 ,
msm_mux_pwm33 ,
msm_mux_qdss_cti_trig_in_a0 ,
msm_mux_qdss_cti_trig_in_a1 ,
msm_mux_qdss_cti_trig_out_a0 ,
msm_mux_qdss_cti_trig_out_a1 ,
msm_mux_qdss_cti_trig_in_b0 ,
msm_mux_qdss_cti_trig_in_b1 ,
msm_mux_qdss_cti_trig_out_b0 ,
msm_mux_qdss_cti_trig_out_b1 ,
msm_mux_qdss_traceclk_a ,
msm_mux_qdss_tracectl_a ,
msm_mux_qdss_tracedata_a ,
msm_mux_qdss_traceclk_b ,
msm_mux_qdss_tracectl_b ,
msm_mux_qdss_tracedata_b ,
msm_mux_qpic_pad ,
msm_mux_rx0 ,
msm_mux_rx1 ,
msm_mux_rx_swrm ,
msm_mux_rx_swrm0 ,
msm_mux_rx_swrm1 ,
msm_mux_sd_card ,
msm_mux_sd_write ,
msm_mux_tsens_max ,
msm_mux_tx_swrm ,
msm_mux_tx_swrm0 ,
msm_mux_tx_swrm1 ,
msm_mux_tx_swrm2 ,
msm_mux_wci20 ,
msm_mux_wci21 ,
msm_mux_wci22 ,
msm_mux_wci23 ,
msm_mux_wsa_swrm ,
msm_mux__ ,
} ;
static const char * const blsp3_uart_groups [ ] = {
" gpio73 " , " gpio74 " , " gpio75 " , " gpio76 " ,
} ;
static const char * const blsp3_i2c_groups [ ] = {
" gpio73 " , " gpio74 " ,
} ;
static const char * const blsp3_spi_groups [ ] = {
" gpio73 " , " gpio74 " , " gpio75 " , " gpio76 " , " gpio77 " , " gpio78 " , " gpio79 " ,
} ;
static const char * const wci20_groups [ ] = {
" gpio0 " , " gpio2 " ,
} ;
static const char * const qpic_pad_groups [ ] = {
" gpio0 " , " gpio1 " , " gpio2 " , " gpio3 " , " gpio4 " , " gpio9 " , " gpio10 " ,
2020-06-19 07:31:29 +03:00
" gpio11 " , " gpio17 " , " gpio15 " , " gpio12 " , " gpio13 " , " gpio14 " , " gpio5 " ,
" gpio6 " , " gpio7 " , " gpio8 " ,
2020-01-19 16:13:18 +03:00
} ;
static const char * const burn0_groups [ ] = {
" gpio0 " ,
} ;
static const char * const mac12_groups [ ] = {
" gpio1 " , " gpio11 " ,
} ;
static const char * const qdss_tracectl_b_groups [ ] = {
" gpio1 " ,
} ;
static const char * const burn1_groups [ ] = {
" gpio1 " ,
} ;
static const char * const qdss_traceclk_b_groups [ ] = {
" gpio0 " ,
} ;
static const char * const qdss_tracedata_b_groups [ ] = {
" gpio2 " , " gpio3 " , " gpio4 " , " gpio5 " , " gpio6 " , " gpio7 " , " gpio8 " , " gpio9 " ,
" gpio10 " , " gpio11 " , " gpio12 " , " gpio13 " , " gpio14 " , " gpio15 " , " gpio16 " ,
" gpio17 " ,
} ;
static const char * const mac01_groups [ ] = {
" gpio3 " , " gpio4 " ,
} ;
static const char * const mac21_groups [ ] = {
" gpio5 " , " gpio6 " ,
} ;
static const char * const atest_char_groups [ ] = {
" gpio9 " ,
} ;
static const char * const cxc0_groups [ ] = {
" gpio9 " , " gpio16 " ,
} ;
static const char * const mac13_groups [ ] = {
" gpio9 " , " gpio16 " ,
} ;
static const char * const dbg_out_groups [ ] = {
" gpio9 " ,
} ;
static const char * const wci22_groups [ ] = {
" gpio11 " , " gpio17 " ,
} ;
static const char * const pwm00_groups [ ] = {
" gpio18 " ,
} ;
static const char * const atest_char0_groups [ ] = {
" gpio18 " ,
} ;
static const char * const wci23_groups [ ] = {
" gpio18 " , " gpio19 " ,
} ;
static const char * const mac11_groups [ ] = {
" gpio18 " , " gpio19 " ,
} ;
static const char * const pwm10_groups [ ] = {
" gpio19 " ,
} ;
static const char * const atest_char1_groups [ ] = {
" gpio19 " ,
} ;
static const char * const pwm20_groups [ ] = {
" gpio20 " ,
} ;
static const char * const atest_char2_groups [ ] = {
" gpio20 " ,
} ;
static const char * const pwm30_groups [ ] = {
" gpio21 " ,
} ;
static const char * const atest_char3_groups [ ] = {
" gpio21 " ,
} ;
static const char * const audio_txmclk_groups [ ] = {
" gpio22 " ,
} ;
static const char * const audio_txmclkin_groups [ ] = {
" gpio22 " ,
} ;
static const char * const pwm02_groups [ ] = {
" gpio22 " ,
} ;
static const char * const tx_swrm0_groups [ ] = {
" gpio22 " ,
} ;
static const char * const qdss_cti_trig_out_b0_groups [ ] = {
" gpio22 " ,
} ;
static const char * const audio_txbclk_groups [ ] = {
" gpio23 " ,
} ;
static const char * const pwm12_groups [ ] = {
" gpio23 " ,
} ;
static const char * const wsa_swrm_groups [ ] = {
" gpio23 " , " gpio24 " ,
} ;
static const char * const tx_swrm1_groups [ ] = {
" gpio23 " ,
} ;
static const char * const qdss_cti_trig_in_b0_groups [ ] = {
" gpio23 " ,
} ;
static const char * const audio_txfsync_groups [ ] = {
" gpio24 " ,
} ;
static const char * const pwm22_groups [ ] = {
" gpio24 " ,
} ;
static const char * const tx_swrm2_groups [ ] = {
" gpio24 " ,
} ;
static const char * const qdss_cti_trig_out_b1_groups [ ] = {
" gpio24 " ,
} ;
static const char * const audio0_groups [ ] = {
" gpio25 " , " gpio32 " ,
} ;
static const char * const pwm32_groups [ ] = {
" gpio25 " ,
} ;
static const char * const tx_swrm_groups [ ] = {
" gpio25 " ,
} ;
static const char * const qdss_cti_trig_in_b1_groups [ ] = {
" gpio25 " ,
} ;
static const char * const audio1_groups [ ] = {
" gpio26 " , " gpio33 " ,
} ;
static const char * const pwm04_groups [ ] = {
" gpio26 " ,
} ;
static const char * const audio2_groups [ ] = {
" gpio27 " ,
} ;
static const char * const pwm14_groups [ ] = {
" gpio27 " ,
} ;
static const char * const audio3_groups [ ] = {
" gpio28 " ,
} ;
static const char * const pwm24_groups [ ] = {
" gpio28 " ,
} ;
static const char * const audio_rxmclk_groups [ ] = {
" gpio29 " ,
} ;
static const char * const audio_rxmclkin_groups [ ] = {
" gpio29 " ,
} ;
static const char * const pwm03_groups [ ] = {
" gpio29 " ,
} ;
static const char * const lpass_pdm_groups [ ] = {
" gpio29 " , " gpio30 " , " gpio31 " , " gpio32 " ,
} ;
static const char * const lpass_aud_groups [ ] = {
" gpio29 " ,
} ;
static const char * const qdss_cti_trig_in_a1_groups [ ] = {
" gpio29 " ,
} ;
static const char * const audio_rxbclk_groups [ ] = {
" gpio30 " ,
} ;
static const char * const pwm13_groups [ ] = {
" gpio30 " ,
} ;
static const char * const lpass_aud0_groups [ ] = {
" gpio30 " ,
} ;
static const char * const rx_swrm_groups [ ] = {
" gpio30 " ,
} ;
static const char * const qdss_cti_trig_out_a1_groups [ ] = {
" gpio30 " ,
} ;
static const char * const audio_rxfsync_groups [ ] = {
" gpio31 " ,
} ;
static const char * const pwm23_groups [ ] = {
" gpio31 " ,
} ;
static const char * const lpass_aud1_groups [ ] = {
" gpio31 " ,
} ;
static const char * const rx_swrm0_groups [ ] = {
" gpio31 " ,
} ;
static const char * const qdss_cti_trig_in_a0_groups [ ] = {
" gpio31 " ,
} ;
static const char * const pwm33_groups [ ] = {
" gpio32 " ,
} ;
static const char * const lpass_aud2_groups [ ] = {
" gpio32 " ,
} ;
static const char * const rx_swrm1_groups [ ] = {
" gpio32 " ,
} ;
static const char * const qdss_cti_trig_out_a0_groups [ ] = {
" gpio32 " ,
} ;
static const char * const lpass_pcm_groups [ ] = {
" gpio34 " , " gpio35 " , " gpio36 " , " gpio37 " ,
} ;
static const char * const mac10_groups [ ] = {
" gpio34 " , " gpio35 " ,
} ;
static const char * const mac00_groups [ ] = {
" gpio34 " , " gpio35 " ,
} ;
static const char * const mac20_groups [ ] = {
" gpio36 " , " gpio37 " ,
} ;
static const char * const blsp0_uart_groups [ ] = {
" gpio38 " , " gpio39 " , " gpio40 " , " gpio41 " ,
} ;
static const char * const blsp0_i2c_groups [ ] = {
" gpio38 " , " gpio39 " ,
} ;
static const char * const blsp0_spi_groups [ ] = {
" gpio38 " , " gpio39 " , " gpio40 " , " gpio41 " ,
} ;
static const char * const blsp2_uart_groups [ ] = {
" gpio42 " , " gpio43 " , " gpio44 " , " gpio45 " ,
} ;
static const char * const blsp2_i2c_groups [ ] = {
" gpio42 " , " gpio43 " ,
} ;
static const char * const blsp2_spi_groups [ ] = {
" gpio42 " , " gpio43 " , " gpio44 " , " gpio45 " ,
} ;
static const char * const blsp5_i2c_groups [ ] = {
" gpio46 " , " gpio47 " ,
} ;
static const char * const blsp5_uart_groups [ ] = {
" gpio48 " , " gpio49 " ,
} ;
static const char * const qdss_traceclk_a_groups [ ] = {
" gpio48 " ,
} ;
static const char * const qdss_tracectl_a_groups [ ] = {
" gpio49 " ,
} ;
static const char * const pwm01_groups [ ] = {
" gpio50 " ,
} ;
static const char * const pta1_1_groups [ ] = {
" gpio51 " ,
} ;
static const char * const pwm11_groups [ ] = {
" gpio51 " ,
} ;
static const char * const rx1_groups [ ] = {
" gpio51 " ,
} ;
static const char * const pta1_2_groups [ ] = {
" gpio52 " ,
} ;
static const char * const pwm21_groups [ ] = {
" gpio52 " ,
} ;
static const char * const pta1_0_groups [ ] = {
" gpio53 " ,
} ;
static const char * const pwm31_groups [ ] = {
" gpio53 " ,
} ;
static const char * const prng_rosc_groups [ ] = {
" gpio53 " ,
} ;
static const char * const blsp4_uart_groups [ ] = {
" gpio55 " , " gpio56 " , " gpio57 " , " gpio58 " ,
} ;
static const char * const blsp4_i2c_groups [ ] = {
" gpio55 " , " gpio56 " ,
} ;
static const char * const blsp4_spi_groups [ ] = {
" gpio55 " , " gpio56 " , " gpio57 " , " gpio58 " ,
} ;
static const char * const pcie0_clk_groups [ ] = {
" gpio59 " ,
} ;
static const char * const cri_trng0_groups [ ] = {
" gpio59 " ,
} ;
static const char * const pcie0_rst_groups [ ] = {
" gpio60 " ,
} ;
static const char * const cri_trng1_groups [ ] = {
" gpio60 " ,
} ;
static const char * const pcie0_wake_groups [ ] = {
" gpio61 " ,
} ;
static const char * const cri_trng_groups [ ] = {
" gpio61 " ,
} ;
static const char * const sd_card_groups [ ] = {
" gpio62 " ,
} ;
static const char * const sd_write_groups [ ] = {
" gpio63 " ,
} ;
static const char * const rx0_groups [ ] = {
" gpio63 " ,
} ;
static const char * const tsens_max_groups [ ] = {
" gpio63 " ,
} ;
static const char * const mdc_groups [ ] = {
" gpio64 " ,
} ;
static const char * const qdss_tracedata_a_groups [ ] = {
" gpio64 " , " gpio65 " , " gpio66 " , " gpio67 " , " gpio68 " , " gpio69 " , " gpio70 " ,
" gpio71 " , " gpio72 " , " gpio73 " , " gpio74 " , " gpio75 " , " gpio76 " , " gpio77 " ,
" gpio78 " , " gpio79 " ,
} ;
static const char * const mdio_groups [ ] = {
" gpio65 " ,
} ;
static const char * const pta2_0_groups [ ] = {
" gpio66 " ,
} ;
static const char * const wci21_groups [ ] = {
" gpio66 " , " gpio68 " ,
} ;
static const char * const cxc1_groups [ ] = {
" gpio66 " , " gpio68 " ,
} ;
static const char * const pta2_1_groups [ ] = {
" gpio67 " ,
} ;
static const char * const pta2_2_groups [ ] = {
" gpio68 " ,
} ;
static const char * const blsp1_uart_groups [ ] = {
" gpio69 " , " gpio70 " , " gpio71 " , " gpio72 " ,
} ;
static const char * const blsp1_i2c_groups [ ] = {
" gpio69 " , " gpio70 " ,
} ;
static const char * const blsp1_spi_groups [ ] = {
" gpio69 " , " gpio70 " , " gpio71 " , " gpio72 " ,
} ;
static const char * const gcc_plltest_groups [ ] = {
" gpio69 " , " gpio71 " ,
} ;
static const char * const gcc_tlmm_groups [ ] = {
" gpio70 " ,
} ;
static const char * const gpio_groups [ ] = {
" gpio0 " , " gpio1 " , " gpio2 " , " gpio3 " , " gpio4 " , " gpio5 " , " gpio6 " , " gpio7 " ,
" gpio8 " , " gpio9 " , " gpio10 " , " gpio11 " , " gpio12 " , " gpio13 " , " gpio14 " ,
" gpio15 " , " gpio16 " , " gpio17 " , " gpio18 " , " gpio19 " , " gpio20 " , " gpio21 " ,
" gpio22 " , " gpio23 " , " gpio24 " , " gpio25 " , " gpio26 " , " gpio27 " , " gpio28 " ,
" gpio29 " , " gpio30 " , " gpio31 " , " gpio32 " , " gpio33 " , " gpio34 " , " gpio35 " ,
" gpio36 " , " gpio37 " , " gpio38 " , " gpio39 " , " gpio40 " , " gpio41 " , " gpio42 " ,
" gpio43 " , " gpio44 " , " gpio45 " , " gpio46 " , " gpio47 " , " gpio48 " , " gpio49 " ,
" gpio50 " , " gpio51 " , " gpio52 " , " gpio53 " , " gpio54 " , " gpio55 " , " gpio56 " ,
" gpio57 " , " gpio58 " , " gpio59 " , " gpio60 " , " gpio61 " , " gpio62 " , " gpio63 " ,
" gpio64 " , " gpio65 " , " gpio66 " , " gpio67 " , " gpio68 " , " gpio69 " , " gpio70 " ,
" gpio71 " , " gpio72 " , " gpio73 " , " gpio74 " , " gpio75 " , " gpio76 " , " gpio77 " ,
" gpio78 " , " gpio79 " ,
} ;
static const struct msm_function ipq6018_functions [ ] = {
FUNCTION ( atest_char ) ,
FUNCTION ( atest_char0 ) ,
FUNCTION ( atest_char1 ) ,
FUNCTION ( atest_char2 ) ,
FUNCTION ( atest_char3 ) ,
FUNCTION ( audio0 ) ,
FUNCTION ( audio1 ) ,
FUNCTION ( audio2 ) ,
FUNCTION ( audio3 ) ,
FUNCTION ( audio_rxbclk ) ,
FUNCTION ( audio_rxfsync ) ,
FUNCTION ( audio_rxmclk ) ,
FUNCTION ( audio_rxmclkin ) ,
FUNCTION ( audio_txbclk ) ,
FUNCTION ( audio_txfsync ) ,
FUNCTION ( audio_txmclk ) ,
FUNCTION ( audio_txmclkin ) ,
FUNCTION ( blsp0_i2c ) ,
FUNCTION ( blsp0_spi ) ,
FUNCTION ( blsp0_uart ) ,
FUNCTION ( blsp1_i2c ) ,
FUNCTION ( blsp1_spi ) ,
FUNCTION ( blsp1_uart ) ,
FUNCTION ( blsp2_i2c ) ,
FUNCTION ( blsp2_spi ) ,
FUNCTION ( blsp2_uart ) ,
FUNCTION ( blsp3_i2c ) ,
FUNCTION ( blsp3_spi ) ,
FUNCTION ( blsp3_uart ) ,
FUNCTION ( blsp4_i2c ) ,
FUNCTION ( blsp4_spi ) ,
FUNCTION ( blsp4_uart ) ,
FUNCTION ( blsp5_i2c ) ,
FUNCTION ( blsp5_uart ) ,
FUNCTION ( burn0 ) ,
FUNCTION ( burn1 ) ,
FUNCTION ( cri_trng ) ,
FUNCTION ( cri_trng0 ) ,
FUNCTION ( cri_trng1 ) ,
FUNCTION ( cxc0 ) ,
FUNCTION ( cxc1 ) ,
FUNCTION ( dbg_out ) ,
FUNCTION ( gcc_plltest ) ,
FUNCTION ( gcc_tlmm ) ,
FUNCTION ( gpio ) ,
FUNCTION ( lpass_aud ) ,
FUNCTION ( lpass_aud0 ) ,
FUNCTION ( lpass_aud1 ) ,
FUNCTION ( lpass_aud2 ) ,
FUNCTION ( lpass_pcm ) ,
FUNCTION ( lpass_pdm ) ,
FUNCTION ( mac00 ) ,
FUNCTION ( mac01 ) ,
FUNCTION ( mac10 ) ,
FUNCTION ( mac11 ) ,
FUNCTION ( mac12 ) ,
FUNCTION ( mac13 ) ,
FUNCTION ( mac20 ) ,
FUNCTION ( mac21 ) ,
FUNCTION ( mdc ) ,
FUNCTION ( mdio ) ,
FUNCTION ( pcie0_clk ) ,
FUNCTION ( pcie0_rst ) ,
FUNCTION ( pcie0_wake ) ,
FUNCTION ( prng_rosc ) ,
FUNCTION ( pta1_0 ) ,
FUNCTION ( pta1_1 ) ,
FUNCTION ( pta1_2 ) ,
FUNCTION ( pta2_0 ) ,
FUNCTION ( pta2_1 ) ,
FUNCTION ( pta2_2 ) ,
FUNCTION ( pwm00 ) ,
FUNCTION ( pwm01 ) ,
FUNCTION ( pwm02 ) ,
FUNCTION ( pwm03 ) ,
FUNCTION ( pwm04 ) ,
FUNCTION ( pwm10 ) ,
FUNCTION ( pwm11 ) ,
FUNCTION ( pwm12 ) ,
FUNCTION ( pwm13 ) ,
FUNCTION ( pwm14 ) ,
FUNCTION ( pwm20 ) ,
FUNCTION ( pwm21 ) ,
FUNCTION ( pwm22 ) ,
FUNCTION ( pwm23 ) ,
FUNCTION ( pwm24 ) ,
FUNCTION ( pwm30 ) ,
FUNCTION ( pwm31 ) ,
FUNCTION ( pwm32 ) ,
FUNCTION ( pwm33 ) ,
FUNCTION ( qdss_cti_trig_in_a0 ) ,
FUNCTION ( qdss_cti_trig_in_a1 ) ,
FUNCTION ( qdss_cti_trig_out_a0 ) ,
FUNCTION ( qdss_cti_trig_out_a1 ) ,
FUNCTION ( qdss_cti_trig_in_b0 ) ,
FUNCTION ( qdss_cti_trig_in_b1 ) ,
FUNCTION ( qdss_cti_trig_out_b0 ) ,
FUNCTION ( qdss_cti_trig_out_b1 ) ,
FUNCTION ( qdss_traceclk_a ) ,
FUNCTION ( qdss_tracectl_a ) ,
FUNCTION ( qdss_tracedata_a ) ,
FUNCTION ( qdss_traceclk_b ) ,
FUNCTION ( qdss_tracectl_b ) ,
FUNCTION ( qdss_tracedata_b ) ,
FUNCTION ( qpic_pad ) ,
FUNCTION ( rx0 ) ,
FUNCTION ( rx1 ) ,
FUNCTION ( rx_swrm ) ,
FUNCTION ( rx_swrm0 ) ,
FUNCTION ( rx_swrm1 ) ,
FUNCTION ( sd_card ) ,
FUNCTION ( sd_write ) ,
FUNCTION ( tsens_max ) ,
FUNCTION ( tx_swrm ) ,
FUNCTION ( tx_swrm0 ) ,
FUNCTION ( tx_swrm1 ) ,
FUNCTION ( tx_swrm2 ) ,
FUNCTION ( wci20 ) ,
FUNCTION ( wci21 ) ,
FUNCTION ( wci22 ) ,
FUNCTION ( wci23 ) ,
FUNCTION ( wsa_swrm ) ,
} ;
static const struct msm_pingroup ipq6018_groups [ ] = {
PINGROUP ( 0 , qpic_pad , wci20 , qdss_traceclk_b , _ , burn0 , _ , _ , _ , _ ) ,
PINGROUP ( 1 , qpic_pad , mac12 , qdss_tracectl_b , _ , burn1 , _ , _ , _ , _ ) ,
PINGROUP ( 2 , qpic_pad , wci20 , qdss_tracedata_b , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 3 , qpic_pad , mac01 , qdss_tracedata_b , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 4 , qpic_pad , mac01 , qdss_tracedata_b , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 5 , qpic_pad , mac21 , qdss_tracedata_b , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 6 , qpic_pad , mac21 , qdss_tracedata_b , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 7 , qpic_pad , qdss_tracedata_b , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 8 , qpic_pad , qdss_tracedata_b , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 9 , qpic_pad , atest_char , cxc0 , mac13 , dbg_out , qdss_tracedata_b , _ , _ , _ ) ,
PINGROUP ( 10 , qpic_pad , qdss_tracedata_b , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 11 , qpic_pad , wci22 , mac12 , qdss_tracedata_b , _ , _ , _ , _ , _ ) ,
PINGROUP ( 12 , qpic_pad , qdss_tracedata_b , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 13 , qpic_pad , qdss_tracedata_b , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 14 , qpic_pad , qdss_tracedata_b , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 15 , qpic_pad , qdss_tracedata_b , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 16 , qpic_pad , cxc0 , mac13 , qdss_tracedata_b , _ , _ , _ , _ , _ ) ,
PINGROUP ( 17 , qpic_pad , qdss_tracedata_b , wci22 , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 18 , pwm00 , atest_char0 , wci23 , mac11 , _ , _ , _ , _ , _ ) ,
PINGROUP ( 19 , pwm10 , atest_char1 , wci23 , mac11 , _ , _ , _ , _ , _ ) ,
PINGROUP ( 20 , pwm20 , atest_char2 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 21 , pwm30 , atest_char3 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 22 , audio_txmclk , audio_txmclkin , pwm02 , tx_swrm0 , _ , qdss_cti_trig_out_b0 , _ , _ , _ ) ,
PINGROUP ( 23 , audio_txbclk , pwm12 , wsa_swrm , tx_swrm1 , _ , qdss_cti_trig_in_b0 , _ , _ , _ ) ,
PINGROUP ( 24 , audio_txfsync , pwm22 , wsa_swrm , tx_swrm2 , _ , qdss_cti_trig_out_b1 , _ , _ , _ ) ,
PINGROUP ( 25 , audio0 , pwm32 , tx_swrm , _ , qdss_cti_trig_in_b1 , _ , _ , _ , _ ) ,
PINGROUP ( 26 , audio1 , pwm04 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 27 , audio2 , pwm14 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 28 , audio3 , pwm24 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 29 , audio_rxmclk , audio_rxmclkin , pwm03 , lpass_pdm , lpass_aud , qdss_cti_trig_in_a1 , _ , _ , _ ) ,
PINGROUP ( 30 , audio_rxbclk , pwm13 , lpass_pdm , lpass_aud0 , rx_swrm , _ , qdss_cti_trig_out_a1 , _ , _ ) ,
PINGROUP ( 31 , audio_rxfsync , pwm23 , lpass_pdm , lpass_aud1 , rx_swrm0 , _ , qdss_cti_trig_in_a0 , _ , _ ) ,
PINGROUP ( 32 , audio0 , pwm33 , lpass_pdm , lpass_aud2 , rx_swrm1 , _ , qdss_cti_trig_out_a0 , _ , _ ) ,
PINGROUP ( 33 , audio1 , _ , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 34 , lpass_pcm , mac10 , mac00 , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 35 , lpass_pcm , mac10 , mac00 , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 36 , lpass_pcm , mac20 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 37 , lpass_pcm , mac20 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 38 , blsp0_uart , blsp0_i2c , blsp0_spi , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 39 , blsp0_uart , blsp0_i2c , blsp0_spi , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 40 , blsp0_uart , blsp0_spi , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 41 , blsp0_uart , blsp0_spi , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 42 , blsp2_uart , blsp2_i2c , blsp2_spi , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 43 , blsp2_uart , blsp2_i2c , blsp2_spi , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 44 , blsp2_uart , blsp2_spi , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 45 , blsp2_uart , blsp2_spi , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 46 , blsp5_i2c , _ , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 47 , blsp5_i2c , _ , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 48 , blsp5_uart , _ , qdss_traceclk_a , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 49 , blsp5_uart , _ , qdss_tracectl_a , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 50 , pwm01 , _ , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 51 , pta1_1 , pwm11 , _ , rx1 , _ , _ , _ , _ , _ ) ,
PINGROUP ( 52 , pta1_2 , pwm21 , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 53 , pta1_0 , pwm31 , prng_rosc , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 54 , _ , _ , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 55 , blsp4_uart , blsp4_i2c , blsp4_spi , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 56 , blsp4_uart , blsp4_i2c , blsp4_spi , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 57 , blsp4_uart , blsp4_spi , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 58 , blsp4_uart , blsp4_spi , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 59 , pcie0_clk , _ , _ , cri_trng0 , _ , _ , _ , _ , _ ) ,
PINGROUP ( 60 , pcie0_rst , _ , _ , cri_trng1 , _ , _ , _ , _ , _ ) ,
PINGROUP ( 61 , pcie0_wake , _ , _ , cri_trng , _ , _ , _ , _ , _ ) ,
PINGROUP ( 62 , sd_card , _ , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 63 , sd_write , rx0 , _ , tsens_max , _ , _ , _ , _ , _ ) ,
PINGROUP ( 64 , mdc , _ , qdss_tracedata_a , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 65 , mdio , _ , qdss_tracedata_a , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 66 , pta2_0 , wci21 , cxc1 , qdss_tracedata_a , _ , _ , _ , _ , _ ) ,
PINGROUP ( 67 , pta2_1 , qdss_tracedata_a , _ , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 68 , pta2_2 , wci21 , cxc1 , qdss_tracedata_a , _ , _ , _ , _ , _ ) ,
PINGROUP ( 69 , blsp1_uart , blsp1_i2c , blsp1_spi , gcc_plltest , qdss_tracedata_a , _ , _ , _ , _ ) ,
PINGROUP ( 70 , blsp1_uart , blsp1_i2c , blsp1_spi , gcc_tlmm , qdss_tracedata_a , _ , _ , _ , _ ) ,
PINGROUP ( 71 , blsp1_uart , blsp1_spi , gcc_plltest , qdss_tracedata_a , _ , _ , _ , _ , _ ) ,
PINGROUP ( 72 , blsp1_uart , blsp1_spi , qdss_tracedata_a , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 73 , blsp3_uart , blsp3_i2c , blsp3_spi , _ , qdss_tracedata_a , _ , _ , _ , _ ) ,
PINGROUP ( 74 , blsp3_uart , blsp3_i2c , blsp3_spi , _ , qdss_tracedata_a , _ , _ , _ , _ ) ,
PINGROUP ( 75 , blsp3_uart , blsp3_spi , _ , qdss_tracedata_a , _ , _ , _ , _ , _ ) ,
PINGROUP ( 76 , blsp3_uart , blsp3_spi , _ , qdss_tracedata_a , _ , _ , _ , _ , _ ) ,
PINGROUP ( 77 , blsp3_spi , _ , qdss_tracedata_a , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 78 , blsp3_spi , _ , qdss_tracedata_a , _ , _ , _ , _ , _ , _ ) ,
PINGROUP ( 79 , blsp3_spi , _ , qdss_tracedata_a , _ , _ , _ , _ , _ , _ ) ,
} ;
static const struct msm_pinctrl_soc_data ipq6018_pinctrl = {
. pins = ipq6018_pins ,
. npins = ARRAY_SIZE ( ipq6018_pins ) ,
. functions = ipq6018_functions ,
. nfunctions = ARRAY_SIZE ( ipq6018_functions ) ,
. groups = ipq6018_groups ,
. ngroups = ARRAY_SIZE ( ipq6018_groups ) ,
. ngpios = 80 ,
} ;
static int ipq6018_pinctrl_probe ( struct platform_device * pdev )
{
return msm_pinctrl_probe ( pdev , & ipq6018_pinctrl ) ;
}
static const struct of_device_id ipq6018_pinctrl_of_match [ ] = {
{ . compatible = " qcom,ipq6018-pinctrl " , } ,
{ } ,
} ;
static struct platform_driver ipq6018_pinctrl_driver = {
. driver = {
. name = " ipq6018-pinctrl " ,
. of_match_table = ipq6018_pinctrl_of_match ,
} ,
. probe = ipq6018_pinctrl_probe ,
. remove = msm_pinctrl_remove ,
} ;
static int __init ipq6018_pinctrl_init ( void )
{
return platform_driver_register ( & ipq6018_pinctrl_driver ) ;
}
arch_initcall ( ipq6018_pinctrl_init ) ;
static void __exit ipq6018_pinctrl_exit ( void )
{
platform_driver_unregister ( & ipq6018_pinctrl_driver ) ;
}
module_exit ( ipq6018_pinctrl_exit ) ;
MODULE_DESCRIPTION ( " QTI ipq6018 pinctrl driver " ) ;
MODULE_LICENSE ( " GPL v2 " ) ;
MODULE_DEVICE_TABLE ( of , ipq6018_pinctrl_of_match ) ;