1*6f3ff168SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*6f3ff168SKrzysztof Kozlowski%YAML 1.2 3*6f3ff168SKrzysztof Kozlowski--- 4*6f3ff168SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pinctrl/qcom,msm8974-pinctrl.yaml# 5*6f3ff168SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*6f3ff168SKrzysztof Kozlowski 7*6f3ff168SKrzysztof Kozlowskititle: Qualcomm MSM8974 TLMM pin controller 8*6f3ff168SKrzysztof Kozlowski 9*6f3ff168SKrzysztof Kozlowskimaintainers: 10*6f3ff168SKrzysztof Kozlowski - Bjorn Andersson <andersson@kernel.org> 11*6f3ff168SKrzysztof Kozlowski - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 12*6f3ff168SKrzysztof Kozlowski 13*6f3ff168SKrzysztof Kozlowskidescription: 14*6f3ff168SKrzysztof Kozlowski Top Level Mode Multiplexer pin controller in Qualcomm MSM8974 SoC. 15*6f3ff168SKrzysztof Kozlowski 16*6f3ff168SKrzysztof Kozlowskiproperties: 17*6f3ff168SKrzysztof Kozlowski compatible: 18*6f3ff168SKrzysztof Kozlowski const: qcom,msm8974-pinctrl 19*6f3ff168SKrzysztof Kozlowski 20*6f3ff168SKrzysztof Kozlowski reg: 21*6f3ff168SKrzysztof Kozlowski maxItems: 1 22*6f3ff168SKrzysztof Kozlowski 23*6f3ff168SKrzysztof Kozlowski interrupts: 24*6f3ff168SKrzysztof Kozlowski maxItems: 1 25*6f3ff168SKrzysztof Kozlowski 26*6f3ff168SKrzysztof Kozlowski interrupt-controller: true 27*6f3ff168SKrzysztof Kozlowski "#interrupt-cells": true 28*6f3ff168SKrzysztof Kozlowski gpio-controller: true 29*6f3ff168SKrzysztof Kozlowski "#gpio-cells": true 30*6f3ff168SKrzysztof Kozlowski gpio-ranges: true 31*6f3ff168SKrzysztof Kozlowski wakeup-parent: true 32*6f3ff168SKrzysztof Kozlowski 33*6f3ff168SKrzysztof Kozlowski gpio-reserved-ranges: 34*6f3ff168SKrzysztof Kozlowski minItems: 1 35*6f3ff168SKrzysztof Kozlowski maxItems: 73 36*6f3ff168SKrzysztof Kozlowski 37*6f3ff168SKrzysztof Kozlowski gpio-line-names: 38*6f3ff168SKrzysztof Kozlowski maxItems: 146 39*6f3ff168SKrzysztof Kozlowski 40*6f3ff168SKrzysztof KozlowskipatternProperties: 41*6f3ff168SKrzysztof Kozlowski "-state$": 42*6f3ff168SKrzysztof Kozlowski oneOf: 43*6f3ff168SKrzysztof Kozlowski - $ref: "#/$defs/qcom-msm8974-tlmm-state" 44*6f3ff168SKrzysztof Kozlowski - patternProperties: 45*6f3ff168SKrzysztof Kozlowski "-pins$": 46*6f3ff168SKrzysztof Kozlowski $ref: "#/$defs/qcom-msm8974-tlmm-state" 47*6f3ff168SKrzysztof Kozlowski additionalProperties: false 48*6f3ff168SKrzysztof Kozlowski 49*6f3ff168SKrzysztof Kozlowski$defs: 50*6f3ff168SKrzysztof Kozlowski qcom-msm8974-tlmm-state: 51*6f3ff168SKrzysztof Kozlowski type: object 52*6f3ff168SKrzysztof Kozlowski description: 53*6f3ff168SKrzysztof Kozlowski Pinctrl node's client devices use subnodes for desired pin configuration. 54*6f3ff168SKrzysztof Kozlowski Client device subnodes use below standard properties. 55*6f3ff168SKrzysztof Kozlowski $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state 56*6f3ff168SKrzysztof Kozlowski unevaluatedProperties: false 57*6f3ff168SKrzysztof Kozlowski 58*6f3ff168SKrzysztof Kozlowski properties: 59*6f3ff168SKrzysztof Kozlowski pins: 60*6f3ff168SKrzysztof Kozlowski description: 61*6f3ff168SKrzysztof Kozlowski List of gpio pins affected by the properties specified in this 62*6f3ff168SKrzysztof Kozlowski subnode. 63*6f3ff168SKrzysztof Kozlowski items: 64*6f3ff168SKrzysztof Kozlowski oneOf: 65*6f3ff168SKrzysztof Kozlowski - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-3][0-9]|14[0-5])$" 66*6f3ff168SKrzysztof Kozlowski - enum: [ hsic_data, hsic_strobe, sdc1_clk, sdc1_cmd, sdc1_data, 67*6f3ff168SKrzysztof Kozlowski sdc2_clk, sdc2_cmd, sdc2_data ] 68*6f3ff168SKrzysztof Kozlowski minItems: 1 69*6f3ff168SKrzysztof Kozlowski maxItems: 36 70*6f3ff168SKrzysztof Kozlowski 71*6f3ff168SKrzysztof Kozlowski function: 72*6f3ff168SKrzysztof Kozlowski description: 73*6f3ff168SKrzysztof Kozlowski Specify the alternative function to be configured for the specified 74*6f3ff168SKrzysztof Kozlowski pins. 75*6f3ff168SKrzysztof Kozlowski 76*6f3ff168SKrzysztof Kozlowski enum: [ gpio, cci_i2c0, cci_i2c1, uim1, uim2, uim_batt_alarm, 77*6f3ff168SKrzysztof Kozlowski blsp_uim1, blsp_uart1, blsp_i2c1, blsp_spi1, blsp_uim2, 78*6f3ff168SKrzysztof Kozlowski blsp_uart2, blsp_i2c2, blsp_spi2, blsp_uim3, blsp_uart3, 79*6f3ff168SKrzysztof Kozlowski blsp_i2c3, blsp_spi3, blsp_uim4, blsp_uart4, blsp_i2c4, 80*6f3ff168SKrzysztof Kozlowski blsp_spi4, blsp_uim5, blsp_uart5, blsp_i2c5, blsp_spi5, 81*6f3ff168SKrzysztof Kozlowski blsp_uim6, blsp_uart6, blsp_i2c6, blsp_spi6, blsp_uim7, 82*6f3ff168SKrzysztof Kozlowski blsp_uart7, blsp_i2c7, blsp_spi7, blsp_uim8, blsp_uart8, 83*6f3ff168SKrzysztof Kozlowski blsp_i2c8, blsp_spi8, blsp_uim9, blsp_uart9, blsp_i2c9, 84*6f3ff168SKrzysztof Kozlowski blsp_spi9, blsp_uim10, blsp_uart10, blsp_i2c10, blsp_spi10, 85*6f3ff168SKrzysztof Kozlowski blsp_uim11, blsp_uart11, blsp_i2c11, blsp_spi11, blsp_uim12, 86*6f3ff168SKrzysztof Kozlowski blsp_uart12, blsp_i2c12, blsp_spi12, blsp_spi1_cs1, 87*6f3ff168SKrzysztof Kozlowski blsp_spi2_cs2, blsp_spi_cs3, blsp_spi2_cs1, blsp_spi2_cs2 88*6f3ff168SKrzysztof Kozlowski blsp_spi2_cs3, blsp_spi10_cs1, blsp_spi10_cs2, blsp_spi10_cs3, 89*6f3ff168SKrzysztof Kozlowski sdc3, sdc4, gcc_gp_clk1, gcc_gp_clk2, gcc_gp_clk3, cci_timer0, 90*6f3ff168SKrzysztof Kozlowski cci_timer1, cci_timer2, cci_timer3, cci_async_in0, 91*6f3ff168SKrzysztof Kozlowski cci_async_in1, cci_async_in2, cam_mckl0, cam_mclk1, cam_mclk2, 92*6f3ff168SKrzysztof Kozlowski cam_mclk3, mdp_vsync, hdmi_cec, hdmi_ddc, hdmi_hpd, edp_hpd, 93*6f3ff168SKrzysztof Kozlowski gp_pdm0, gp_pdm1, gp_pdm2, gp_pdm3, gp0_clk, gp1_clk, gp_mn, 94*6f3ff168SKrzysztof Kozlowski tsif1, tsif2, hsic, grfc, audio_ref_clk, qua_mi2s, pri_mi2s, 95*6f3ff168SKrzysztof Kozlowski spkr_mi2s, ter_mi2s, sec_mi2s, bt, fm, wlan, slimbus, hsic_ctl ] 96*6f3ff168SKrzysztof Kozlowski 97*6f3ff168SKrzysztof Kozlowski required: 98*6f3ff168SKrzysztof Kozlowski - pins 99*6f3ff168SKrzysztof Kozlowski 100*6f3ff168SKrzysztof Kozlowski allOf: 101*6f3ff168SKrzysztof Kozlowski - if: 102*6f3ff168SKrzysztof Kozlowski properties: 103*6f3ff168SKrzysztof Kozlowski pins: 104*6f3ff168SKrzysztof Kozlowski contains: 105*6f3ff168SKrzysztof Kozlowski enum: 106*6f3ff168SKrzysztof Kozlowski - hsic_data 107*6f3ff168SKrzysztof Kozlowski - hsic_strobe 108*6f3ff168SKrzysztof Kozlowski required: 109*6f3ff168SKrzysztof Kozlowski - pins 110*6f3ff168SKrzysztof Kozlowski then: 111*6f3ff168SKrzysztof Kozlowski properties: 112*6f3ff168SKrzysztof Kozlowski bias-pull-down: false 113*6f3ff168SKrzysztof Kozlowski bias-pull-up: false 114*6f3ff168SKrzysztof Kozlowski bias-disable: false 115*6f3ff168SKrzysztof Kozlowski drive-strength: false 116*6f3ff168SKrzysztof Kozlowski input-enable: false 117*6f3ff168SKrzysztof Kozlowski output-high: false 118*6f3ff168SKrzysztof Kozlowski output-low: false 119*6f3ff168SKrzysztof Kozlowski 120*6f3ff168SKrzysztof KozlowskiallOf: 121*6f3ff168SKrzysztof Kozlowski - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml# 122*6f3ff168SKrzysztof Kozlowski 123*6f3ff168SKrzysztof Kozlowskirequired: 124*6f3ff168SKrzysztof Kozlowski - compatible 125*6f3ff168SKrzysztof Kozlowski - reg 126*6f3ff168SKrzysztof Kozlowski 127*6f3ff168SKrzysztof KozlowskiadditionalProperties: false 128*6f3ff168SKrzysztof Kozlowski 129*6f3ff168SKrzysztof Kozlowskiexamples: 130*6f3ff168SKrzysztof Kozlowski - | 131*6f3ff168SKrzysztof Kozlowski #include <dt-bindings/interrupt-controller/arm-gic.h> 132*6f3ff168SKrzysztof Kozlowski tlmm: pinctrl@fd510000 { 133*6f3ff168SKrzysztof Kozlowski compatible = "qcom,msm8974-pinctrl"; 134*6f3ff168SKrzysztof Kozlowski reg = <0xfd510000 0x4000>; 135*6f3ff168SKrzysztof Kozlowski gpio-controller; 136*6f3ff168SKrzysztof Kozlowski gpio-ranges = <&tlmm 0 0 146>; 137*6f3ff168SKrzysztof Kozlowski #gpio-cells = <2>; 138*6f3ff168SKrzysztof Kozlowski interrupt-controller; 139*6f3ff168SKrzysztof Kozlowski #interrupt-cells = <2>; 140*6f3ff168SKrzysztof Kozlowski interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>; 141*6f3ff168SKrzysztof Kozlowski 142*6f3ff168SKrzysztof Kozlowski sdc1-off-state { 143*6f3ff168SKrzysztof Kozlowski clk-pins { 144*6f3ff168SKrzysztof Kozlowski pins = "sdc1_clk"; 145*6f3ff168SKrzysztof Kozlowski bias-disable; 146*6f3ff168SKrzysztof Kozlowski drive-strength = <2>; 147*6f3ff168SKrzysztof Kozlowski }; 148*6f3ff168SKrzysztof Kozlowski 149*6f3ff168SKrzysztof Kozlowski cmd-pins { 150*6f3ff168SKrzysztof Kozlowski pins = "sdc1_cmd"; 151*6f3ff168SKrzysztof Kozlowski bias-pull-up; 152*6f3ff168SKrzysztof Kozlowski drive-strength = <2>; 153*6f3ff168SKrzysztof Kozlowski }; 154*6f3ff168SKrzysztof Kozlowski 155*6f3ff168SKrzysztof Kozlowski data-pins { 156*6f3ff168SKrzysztof Kozlowski pins = "sdc1_data"; 157*6f3ff168SKrzysztof Kozlowski bias-pull-up; 158*6f3ff168SKrzysztof Kozlowski drive-strength = <2>; 159*6f3ff168SKrzysztof Kozlowski }; 160*6f3ff168SKrzysztof Kozlowski }; 161*6f3ff168SKrzysztof Kozlowski 162*6f3ff168SKrzysztof Kozlowski blsp2-uart1-sleep-state { 163*6f3ff168SKrzysztof Kozlowski pins = "gpio41", "gpio42", "gpio43", "gpio44"; 164*6f3ff168SKrzysztof Kozlowski function = "gpio"; 165*6f3ff168SKrzysztof Kozlowski drive-strength = <2>; 166*6f3ff168SKrzysztof Kozlowski bias-pull-down; 167*6f3ff168SKrzysztof Kozlowski }; 168*6f3ff168SKrzysztof Kozlowski 169*6f3ff168SKrzysztof Kozlowski hsic-state { 170*6f3ff168SKrzysztof Kozlowski pins = "hsic_data", "hsic_strobe"; 171*6f3ff168SKrzysztof Kozlowski }; 172*6f3ff168SKrzysztof Kozlowski }; 173*6f3ff168SKrzysztof Kozlowski