1*51cd31aeSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*51cd31aeSKrzysztof Kozlowski%YAML 1.2 3*51cd31aeSKrzysztof Kozlowski--- 4*51cd31aeSKrzysztof Kozlowski$id: http://devicetree.org/schemas/pinctrl/qcom,msm8960-pinctrl.yaml# 5*51cd31aeSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*51cd31aeSKrzysztof Kozlowski 7*51cd31aeSKrzysztof Kozlowskititle: Qualcomm MSM8960 TLMM pin controller 8*51cd31aeSKrzysztof Kozlowski 9*51cd31aeSKrzysztof Kozlowskimaintainers: 10*51cd31aeSKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*51cd31aeSKrzysztof Kozlowski - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 12*51cd31aeSKrzysztof Kozlowski 13*51cd31aeSKrzysztof Kozlowskidescription: 14*51cd31aeSKrzysztof Kozlowski Top Level Mode Multiplexer pin controller in Qualcomm MSM8960 SoC. 15*51cd31aeSKrzysztof Kozlowski 16*51cd31aeSKrzysztof Kozlowskiproperties: 17*51cd31aeSKrzysztof Kozlowski compatible: 18*51cd31aeSKrzysztof Kozlowski const: qcom,msm8960-pinctrl 19*51cd31aeSKrzysztof Kozlowski 20*51cd31aeSKrzysztof Kozlowski reg: 21*51cd31aeSKrzysztof Kozlowski maxItems: 1 22*51cd31aeSKrzysztof Kozlowski 23*51cd31aeSKrzysztof Kozlowski interrupts: true 24*51cd31aeSKrzysztof Kozlowski interrupt-controller: true 25*51cd31aeSKrzysztof Kozlowski "#interrupt-cells": true 26*51cd31aeSKrzysztof Kozlowski gpio-controller: true 27*51cd31aeSKrzysztof Kozlowski "#gpio-cells": true 28*51cd31aeSKrzysztof Kozlowski gpio-ranges: true 29*51cd31aeSKrzysztof Kozlowski wakeup-parent: true 30*51cd31aeSKrzysztof Kozlowski 31*51cd31aeSKrzysztof Kozlowski gpio-reserved-ranges: 32*51cd31aeSKrzysztof Kozlowski minItems: 1 33*51cd31aeSKrzysztof Kozlowski maxItems: 76 34*51cd31aeSKrzysztof Kozlowski 35*51cd31aeSKrzysztof Kozlowski gpio-line-names: 36*51cd31aeSKrzysztof Kozlowski maxItems: 152 37*51cd31aeSKrzysztof Kozlowski 38*51cd31aeSKrzysztof KozlowskipatternProperties: 39*51cd31aeSKrzysztof Kozlowski "-state$": 40*51cd31aeSKrzysztof Kozlowski oneOf: 41*51cd31aeSKrzysztof Kozlowski - $ref: "#/$defs/qcom-msm8960-tlmm-state" 42*51cd31aeSKrzysztof Kozlowski - patternProperties: 43*51cd31aeSKrzysztof Kozlowski "-pins$": 44*51cd31aeSKrzysztof Kozlowski $ref: "#/$defs/qcom-msm8960-tlmm-state" 45*51cd31aeSKrzysztof Kozlowski additionalProperties: false 46*51cd31aeSKrzysztof Kozlowski 47*51cd31aeSKrzysztof Kozlowski$defs: 48*51cd31aeSKrzysztof Kozlowski qcom-msm8960-tlmm-state: 49*51cd31aeSKrzysztof Kozlowski type: object 50*51cd31aeSKrzysztof Kozlowski description: 51*51cd31aeSKrzysztof Kozlowski Pinctrl node's client devices use subnodes for desired pin configuration. 52*51cd31aeSKrzysztof Kozlowski Client device subnodes use below standard properties. 53*51cd31aeSKrzysztof Kozlowski $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state 54*51cd31aeSKrzysztof Kozlowski 55*51cd31aeSKrzysztof Kozlowski properties: 56*51cd31aeSKrzysztof Kozlowski pins: 57*51cd31aeSKrzysztof Kozlowski description: 58*51cd31aeSKrzysztof Kozlowski List of gpio pins affected by the properties specified in this 59*51cd31aeSKrzysztof Kozlowski subnode. 60*51cd31aeSKrzysztof Kozlowski items: 61*51cd31aeSKrzysztof Kozlowski oneOf: 62*51cd31aeSKrzysztof Kozlowski - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-4][0-9]|15[0-1])$" 63*51cd31aeSKrzysztof Kozlowski - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc3_clk, sdc3_cmd, 64*51cd31aeSKrzysztof Kozlowski sdc3_data ] 65*51cd31aeSKrzysztof Kozlowski minItems: 1 66*51cd31aeSKrzysztof Kozlowski maxItems: 36 67*51cd31aeSKrzysztof Kozlowski 68*51cd31aeSKrzysztof Kozlowski function: 69*51cd31aeSKrzysztof Kozlowski description: 70*51cd31aeSKrzysztof Kozlowski Specify the alternative function to be configured for the specified 71*51cd31aeSKrzysztof Kozlowski pins. 72*51cd31aeSKrzysztof Kozlowski 73*51cd31aeSKrzysztof Kozlowski enum: [ gpio, audio_pcm, bt, cam_mclk0, cam_mclk1, cam_mclk2, 74*51cd31aeSKrzysztof Kozlowski codec_mic_i2s, codec_spkr_i2s, ext_gps, fm, gps_blanking, 75*51cd31aeSKrzysztof Kozlowski gps_pps_in, gps_pps_out, gp_clk_0a, gp_clk_0b, gp_clk_1a, 76*51cd31aeSKrzysztof Kozlowski gp_clk_1b, gp_clk_2a, gp_clk_2b, gp_mn, gp_pdm_0a, gp_pdm_0b, 77*51cd31aeSKrzysztof Kozlowski gp_pdm_1a, gp_pdm_1b, gp_pdm_2a, gp_pdm_2b, gsbi1, 78*51cd31aeSKrzysztof Kozlowski gsbi1_spi_cs1_n, gsbi1_spi_cs2a_n, gsbi1_spi_cs2b_n, 79*51cd31aeSKrzysztof Kozlowski gsbi1_spi_cs3_n, gsbi2, gsbi2_spi_cs1_n, gsbi2_spi_cs2_n, 80*51cd31aeSKrzysztof Kozlowski gsbi2_spi_cs3_n, gsbi3, gsbi4, gsbi4_3d_cam_i2c_l, 81*51cd31aeSKrzysztof Kozlowski gsbi4_3d_cam_i2c_r, gsbi5, gsbi5_3d_cam_i2c_l, 82*51cd31aeSKrzysztof Kozlowski gsbi5_3d_cam_i2c_r, gsbi6, gsbi7, gsbi8, gsbi9, gsbi10, gsbi11, 83*51cd31aeSKrzysztof Kozlowski gsbi11_spi_cs1a_n, gsbi11_spi_cs1b_n, gsbi11_spi_cs2a_n, 84*51cd31aeSKrzysztof Kozlowski gsbi11_spi_cs2b_n, gsbi11_spi_cs3_n, gsbi12, hdmi_cec, 85*51cd31aeSKrzysztof Kozlowski hdmi_ddc_clock, hdmi_ddc_data, hdmi_hot_plug_detect, hsic, 86*51cd31aeSKrzysztof Kozlowski mdp_vsync, mi2s, mic_i2s, pmb_clk, pmb_ext_ctrl, ps_hold, 87*51cd31aeSKrzysztof Kozlowski rpm_wdog, sdc2, sdc4, sdc5, slimbus1, slimbus2, spkr_i2s, 88*51cd31aeSKrzysztof Kozlowski ssbi1, ssbi2, ssbi_ext_gps, ssbi_pmic2, ssbi_qpa1, ssbi_ts, 89*51cd31aeSKrzysztof Kozlowski tsif1, tsif2, ts_eoc, usb_fs1, usb_fs1_oe, usb_fs1_oe_n, 90*51cd31aeSKrzysztof Kozlowski usb_fs2, usb_fs2_oe, usb_fs2_oe_n, vfe_camif_timer1_a, 91*51cd31aeSKrzysztof Kozlowski vfe_camif_timer1_b, vfe_camif_timer2, vfe_camif_timer3_a, 92*51cd31aeSKrzysztof Kozlowski vfe_camif_timer3_b, vfe_camif_timer4_a, vfe_camif_timer4_b, 93*51cd31aeSKrzysztof Kozlowski vfe_camif_timer4_c, vfe_camif_timer5_a, vfe_camif_timer5_b, 94*51cd31aeSKrzysztof Kozlowski vfe_camif_timer6_a, vfe_camif_timer6_b, vfe_camif_timer6_c, 95*51cd31aeSKrzysztof Kozlowski vfe_camif_timer7_a, vfe_camif_timer7_b, vfe_camif_timer7_c, 96*51cd31aeSKrzysztof Kozlowski wlan ] 97*51cd31aeSKrzysztof Kozlowski 98*51cd31aeSKrzysztof Kozlowski bias-pull-down: true 99*51cd31aeSKrzysztof Kozlowski bias-pull-up: true 100*51cd31aeSKrzysztof Kozlowski bias-disable: true 101*51cd31aeSKrzysztof Kozlowski drive-strength: true 102*51cd31aeSKrzysztof Kozlowski input-enable: true 103*51cd31aeSKrzysztof Kozlowski output-high: true 104*51cd31aeSKrzysztof Kozlowski output-low: true 105*51cd31aeSKrzysztof Kozlowski 106*51cd31aeSKrzysztof Kozlowski required: 107*51cd31aeSKrzysztof Kozlowski - pins 108*51cd31aeSKrzysztof Kozlowski 109*51cd31aeSKrzysztof Kozlowski additionalProperties: false 110*51cd31aeSKrzysztof Kozlowski 111*51cd31aeSKrzysztof KozlowskiallOf: 112*51cd31aeSKrzysztof Kozlowski - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml# 113*51cd31aeSKrzysztof Kozlowski 114*51cd31aeSKrzysztof Kozlowskirequired: 115*51cd31aeSKrzysztof Kozlowski - compatible 116*51cd31aeSKrzysztof Kozlowski - reg 117*51cd31aeSKrzysztof Kozlowski 118*51cd31aeSKrzysztof KozlowskiadditionalProperties: false 119*51cd31aeSKrzysztof Kozlowski 120*51cd31aeSKrzysztof Kozlowskiexamples: 121*51cd31aeSKrzysztof Kozlowski - | 122*51cd31aeSKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 123*51cd31aeSKrzysztof Kozlowski 124*51cd31aeSKrzysztof Kozlowski msmgpio: pinctrl@800000 { 125*51cd31aeSKrzysztof Kozlowski compatible = "qcom,msm8960-pinctrl"; 126*51cd31aeSKrzysztof Kozlowski reg = <0x800000 0x4000>; 127*51cd31aeSKrzysztof Kozlowski #gpio-cells = <2>; 128*51cd31aeSKrzysztof Kozlowski gpio-controller; 129*51cd31aeSKrzysztof Kozlowski gpio-ranges = <&msmgpio 0 0 152>; 130*51cd31aeSKrzysztof Kozlowski interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 131*51cd31aeSKrzysztof Kozlowski interrupt-controller; 132*51cd31aeSKrzysztof Kozlowski #interrupt-cells = <2>; 133*51cd31aeSKrzysztof Kozlowski 134*51cd31aeSKrzysztof Kozlowski spi1-default-state { 135*51cd31aeSKrzysztof Kozlowski mosi-pins { 136*51cd31aeSKrzysztof Kozlowski pins = "gpio6"; 137*51cd31aeSKrzysztof Kozlowski function = "gsbi1"; 138*51cd31aeSKrzysztof Kozlowski drive-strength = <12>; 139*51cd31aeSKrzysztof Kozlowski bias-disable; 140*51cd31aeSKrzysztof Kozlowski }; 141*51cd31aeSKrzysztof Kozlowski 142*51cd31aeSKrzysztof Kozlowski miso-pins { 143*51cd31aeSKrzysztof Kozlowski pins = "gpio7"; 144*51cd31aeSKrzysztof Kozlowski function = "gsbi1"; 145*51cd31aeSKrzysztof Kozlowski drive-strength = <12>; 146*51cd31aeSKrzysztof Kozlowski bias-disable; 147*51cd31aeSKrzysztof Kozlowski }; 148*51cd31aeSKrzysztof Kozlowski 149*51cd31aeSKrzysztof Kozlowski cs-pins { 150*51cd31aeSKrzysztof Kozlowski pins = "gpio8"; 151*51cd31aeSKrzysztof Kozlowski function = "gpio"; 152*51cd31aeSKrzysztof Kozlowski drive-strength = <12>; 153*51cd31aeSKrzysztof Kozlowski bias-disable; 154*51cd31aeSKrzysztof Kozlowski output-low; 155*51cd31aeSKrzysztof Kozlowski }; 156*51cd31aeSKrzysztof Kozlowski 157*51cd31aeSKrzysztof Kozlowski clk-pins { 158*51cd31aeSKrzysztof Kozlowski pins = "gpio9"; 159*51cd31aeSKrzysztof Kozlowski function = "gsbi1"; 160*51cd31aeSKrzysztof Kozlowski drive-strength = <12>; 161*51cd31aeSKrzysztof Kozlowski bias-disable; 162*51cd31aeSKrzysztof Kozlowski }; 163*51cd31aeSKrzysztof Kozlowski }; 164*51cd31aeSKrzysztof Kozlowski }; 165