1*2846c905SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*2846c905SEmmanuel Vadot%YAML 1.2 3*2846c905SEmmanuel Vadot--- 4*2846c905SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,msm8917-pinctrl.yaml# 5*2846c905SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2846c905SEmmanuel Vadot 7*2846c905SEmmanuel Vadottitle: Qualcomm MSM8917 TLMM pin controller 8*2846c905SEmmanuel Vadot 9*2846c905SEmmanuel Vadotmaintainers: 10*2846c905SEmmanuel Vadot - Barnabas Czeman <barnabas.czeman@mainlining.org> 11*2846c905SEmmanuel Vadot 12*2846c905SEmmanuel Vadotdescription: 13*2846c905SEmmanuel Vadot Top Level Mode Multiplexer pin controller in Qualcomm MSM8917 SoC. 14*2846c905SEmmanuel Vadot 15*2846c905SEmmanuel Vadotproperties: 16*2846c905SEmmanuel Vadot compatible: 17*2846c905SEmmanuel Vadot const: qcom,msm8917-pinctrl 18*2846c905SEmmanuel Vadot 19*2846c905SEmmanuel Vadot reg: 20*2846c905SEmmanuel Vadot maxItems: 1 21*2846c905SEmmanuel Vadot 22*2846c905SEmmanuel Vadot interrupts: 23*2846c905SEmmanuel Vadot maxItems: 1 24*2846c905SEmmanuel Vadot 25*2846c905SEmmanuel Vadot gpio-reserved-ranges: 26*2846c905SEmmanuel Vadot minItems: 1 27*2846c905SEmmanuel Vadot maxItems: 66 28*2846c905SEmmanuel Vadot 29*2846c905SEmmanuel Vadot gpio-line-names: 30*2846c905SEmmanuel Vadot maxItems: 134 31*2846c905SEmmanuel Vadot 32*2846c905SEmmanuel VadotpatternProperties: 33*2846c905SEmmanuel Vadot "-state$": 34*2846c905SEmmanuel Vadot oneOf: 35*2846c905SEmmanuel Vadot - $ref: "#/$defs/qcom-msm8917-tlmm-state" 36*2846c905SEmmanuel Vadot - patternProperties: 37*2846c905SEmmanuel Vadot "-pins$": 38*2846c905SEmmanuel Vadot $ref: "#/$defs/qcom-msm8917-tlmm-state" 39*2846c905SEmmanuel Vadot additionalProperties: false 40*2846c905SEmmanuel Vadot 41*2846c905SEmmanuel Vadot$defs: 42*2846c905SEmmanuel Vadot qcom-msm8917-tlmm-state: 43*2846c905SEmmanuel Vadot type: object 44*2846c905SEmmanuel Vadot description: 45*2846c905SEmmanuel Vadot Pinctrl node's client devices use subnodes for desired pin configuration. 46*2846c905SEmmanuel Vadot Client device subnodes use below standard properties. 47*2846c905SEmmanuel Vadot $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state 48*2846c905SEmmanuel Vadot unevaluatedProperties: false 49*2846c905SEmmanuel Vadot 50*2846c905SEmmanuel Vadot properties: 51*2846c905SEmmanuel Vadot pins: 52*2846c905SEmmanuel Vadot description: 53*2846c905SEmmanuel Vadot List of gpio pins affected by the properties specified in this 54*2846c905SEmmanuel Vadot subnode. 55*2846c905SEmmanuel Vadot items: 56*2846c905SEmmanuel Vadot oneOf: 57*2846c905SEmmanuel Vadot - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-2][0-9]|13[0-3])$" 58*2846c905SEmmanuel Vadot - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc1_rclk, sdc2_clk, 59*2846c905SEmmanuel Vadot sdc2_cmd, sdc2_data, qdsd_clk, qdsd_cmd, qdsd_data0, 60*2846c905SEmmanuel Vadot qdsd_data1, qdsd_data2, qdsd_data3 ] 61*2846c905SEmmanuel Vadot minItems: 1 62*2846c905SEmmanuel Vadot maxItems: 16 63*2846c905SEmmanuel Vadot 64*2846c905SEmmanuel Vadot function: 65*2846c905SEmmanuel Vadot description: 66*2846c905SEmmanuel Vadot Specify the alternative function to be configured for the specified 67*2846c905SEmmanuel Vadot pins. 68*2846c905SEmmanuel Vadot 69*2846c905SEmmanuel Vadot enum: [ accel_int, adsp_ext, alsp_int, atest_bbrx0, atest_bbrx1, 70*2846c905SEmmanuel Vadot atest_char, atest_char0, atest_char1, atest_char2, 71*2846c905SEmmanuel Vadot atest_char3, atest_combodac_to_gpio_native, 72*2846c905SEmmanuel Vadot atest_gpsadc_dtest0_native, atest_gpsadc_dtest1_native, 73*2846c905SEmmanuel Vadot atest_tsens, atest_wlan0, atest_wlan1, audio_ref, 74*2846c905SEmmanuel Vadot audio_reset, bimc_dte0, bimc_dte1, blsp6_spi, blsp8_spi, 75*2846c905SEmmanuel Vadot blsp_i2c1, blsp_i2c2, blsp_i2c3, blsp_i2c4, blsp_i2c5, 76*2846c905SEmmanuel Vadot blsp_i2c6, blsp_i2c7, blsp_i2c8, blsp_spi1, blsp_spi2, 77*2846c905SEmmanuel Vadot blsp_spi3, blsp_spi4, blsp_spi5, blsp_spi6, blsp_spi7, 78*2846c905SEmmanuel Vadot blsp_spi8, blsp_uart1, blsp_uart2, blsp_uart3, blsp_uart4, 79*2846c905SEmmanuel Vadot blsp_uart5, blsp_uart6, blsp_uart7, blsp_uart8, cam0_ldo, 80*2846c905SEmmanuel Vadot cam1_rst, cam1_standby, cam2_rst, cam2_standby, cam_mclk, 81*2846c905SEmmanuel Vadot cci_async, cci_i2c, cci_timer0, cci_timer1, cdc_pdm0, 82*2846c905SEmmanuel Vadot codec_int1, codec_int2, codec_mad, coex_uart, cri_trng, 83*2846c905SEmmanuel Vadot cri_trng0, cri_trng1, dbg_out, dmic0_clk, dmic0_data, 84*2846c905SEmmanuel Vadot ebi_cdc, ebi_ch0, ext_lpass, forced_usb, fp_gpio, fp_int, 85*2846c905SEmmanuel Vadot gcc_gp1_clk_a, gcc_gp1_clk_b, gcc_gp2_clk_a, gcc_gp2_clk_b, 86*2846c905SEmmanuel Vadot gcc_gp3_clk_a, gcc_gp3_clk_b, gcc_plltest, gcc_tlmm, gpio, 87*2846c905SEmmanuel Vadot gsm0_tx, key_focus, key_snapshot, key_volp, ldo_en, 88*2846c905SEmmanuel Vadot ldo_update, lpass_slimbus, lpass_slimbus0, lpass_slimbus1, 89*2846c905SEmmanuel Vadot m_voc, mag_int, mdp_vsync, mipi_dsi0, modem_tsync, nav_pps, 90*2846c905SEmmanuel Vadot nav_pps_in_a, nav_pps_in_b, nav_tsync, nfc_pwr, ov_ldo, 91*2846c905SEmmanuel Vadot pa_indicator, pbs0, pbs1, pbs2, pri_mi2s, pri_mi2s_mclk_a, 92*2846c905SEmmanuel Vadot pri_mi2s_mclk_b, pri_mi2s_ws, prng_rosc, 93*2846c905SEmmanuel Vadot pwr_crypto_enabled_a, pwr_crypto_enabled_b, 94*2846c905SEmmanuel Vadot pwr_modem_enabled_a, pwr_modem_enabled_b, pwr_nav_enabled_a, 95*2846c905SEmmanuel Vadot pwr_nav_enabled_b, qdss_cti_trig_in_a0, qdss_cti_trig_in_a1, 96*2846c905SEmmanuel Vadot qdss_cti_trig_in_b0, qdss_cti_trig_in_b1, 97*2846c905SEmmanuel Vadot qdss_cti_trig_out_a0, qdss_cti_trig_out_a1, 98*2846c905SEmmanuel Vadot qdss_cti_trig_out_b0, qdss_cti_trig_out_b1, qdss_traceclk_a, 99*2846c905SEmmanuel Vadot qdss_traceclk_b, qdss_tracectl_a, qdss_tracectl_b, 100*2846c905SEmmanuel Vadot qdss_tracedata_a, qdss_tracedata_b, sd_write, sdcard_det, 101*2846c905SEmmanuel Vadot sec_mi2s, sec_mi2s_mclk_a, sec_mi2s_mclk_b, sensor_rst, 102*2846c905SEmmanuel Vadot smb_int, ssbi_wtr1, ts_resout, ts_sample, uim1_clk, 103*2846c905SEmmanuel Vadot uim1_data, uim1_present, uim1_reset, uim2_clk, uim2_data, 104*2846c905SEmmanuel Vadot uim2_present, uim2_reset, uim_batt, us_emitter, us_euro, 105*2846c905SEmmanuel Vadot wcss_bt, wcss_fm, wcss_wlan, wcss_wlan0, wcss_wlan1, 106*2846c905SEmmanuel Vadot wcss_wlan2, webcam_rst, webcam_standby, wsa_io, wsa_irq ] 107*2846c905SEmmanuel Vadot 108*2846c905SEmmanuel Vadot required: 109*2846c905SEmmanuel Vadot - pins 110*2846c905SEmmanuel Vadot 111*2846c905SEmmanuel VadotallOf: 112*2846c905SEmmanuel Vadot - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml# 113*2846c905SEmmanuel Vadot 114*2846c905SEmmanuel Vadotrequired: 115*2846c905SEmmanuel Vadot - compatible 116*2846c905SEmmanuel Vadot - reg 117*2846c905SEmmanuel Vadot 118*2846c905SEmmanuel VadotunevaluatedProperties: false 119*2846c905SEmmanuel Vadot 120*2846c905SEmmanuel Vadotexamples: 121*2846c905SEmmanuel Vadot - | 122*2846c905SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 123*2846c905SEmmanuel Vadot 124*2846c905SEmmanuel Vadot tlmm: pinctrl@1000000 { 125*2846c905SEmmanuel Vadot compatible = "qcom,msm8917-pinctrl"; 126*2846c905SEmmanuel Vadot reg = <0x01000000 0x300000>; 127*2846c905SEmmanuel Vadot interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 128*2846c905SEmmanuel Vadot gpio-controller; 129*2846c905SEmmanuel Vadot gpio-ranges = <&tlmm 0 0 134>; 130*2846c905SEmmanuel Vadot #gpio-cells = <2>; 131*2846c905SEmmanuel Vadot interrupt-controller; 132*2846c905SEmmanuel Vadot #interrupt-cells = <2>; 133*2846c905SEmmanuel Vadot 134*2846c905SEmmanuel Vadot blsp1-uart2-sleep-state { 135*2846c905SEmmanuel Vadot pins = "gpio4", "gpio5"; 136*2846c905SEmmanuel Vadot function = "gpio"; 137*2846c905SEmmanuel Vadot 138*2846c905SEmmanuel Vadot drive-strength = <2>; 139*2846c905SEmmanuel Vadot bias-pull-down; 140*2846c905SEmmanuel Vadot }; 141*2846c905SEmmanuel Vadot 142*2846c905SEmmanuel Vadot spi1-default-state { 143*2846c905SEmmanuel Vadot spi-pins { 144*2846c905SEmmanuel Vadot pins = "gpio0", "gpio1", "gpio3"; 145*2846c905SEmmanuel Vadot function = "blsp_spi1"; 146*2846c905SEmmanuel Vadot 147*2846c905SEmmanuel Vadot drive-strength = <12>; 148*2846c905SEmmanuel Vadot bias-disable; 149*2846c905SEmmanuel Vadot }; 150*2846c905SEmmanuel Vadot 151*2846c905SEmmanuel Vadot cs-pins { 152*2846c905SEmmanuel Vadot pins = "gpio2"; 153*2846c905SEmmanuel Vadot function = "gpio"; 154*2846c905SEmmanuel Vadot 155*2846c905SEmmanuel Vadot drive-strength = <16>; 156*2846c905SEmmanuel Vadot bias-disable; 157*2846c905SEmmanuel Vadot output-high; 158*2846c905SEmmanuel Vadot }; 159*2846c905SEmmanuel Vadot }; 160*2846c905SEmmanuel Vadot }; 161