1*2b4e7a87SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*2b4e7a87SKrzysztof Kozlowski%YAML 1.2 3*2b4e7a87SKrzysztof Kozlowski--- 4*2b4e7a87SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pinctrl/qcom,sm8350-lpass-lpi-pinctrl.yaml# 5*2b4e7a87SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml# 6*2b4e7a87SKrzysztof Kozlowski 7*2b4e7a87SKrzysztof Kozlowskititle: Qualcomm SM8350 SoC LPASS LPI TLMM 8*2b4e7a87SKrzysztof Kozlowski 9*2b4e7a87SKrzysztof Kozlowskimaintainers: 10*2b4e7a87SKrzysztof Kozlowski - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 11*2b4e7a87SKrzysztof Kozlowski - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 12*2b4e7a87SKrzysztof Kozlowski 13*2b4e7a87SKrzysztof Kozlowskidescription: 14*2b4e7a87SKrzysztof Kozlowski Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem 15*2b4e7a87SKrzysztof Kozlowski (LPASS) Low Power Island (LPI) of Qualcomm SM8350 SoC. 16*2b4e7a87SKrzysztof Kozlowski 17*2b4e7a87SKrzysztof Kozlowskiproperties: 18*2b4e7a87SKrzysztof Kozlowski compatible: 19*2b4e7a87SKrzysztof Kozlowski const: qcom,sm8350-lpass-lpi-pinctrl 20*2b4e7a87SKrzysztof Kozlowski 21*2b4e7a87SKrzysztof Kozlowski reg: 22*2b4e7a87SKrzysztof Kozlowski items: 23*2b4e7a87SKrzysztof Kozlowski - description: LPASS LPI TLMM Control and Status registers 24*2b4e7a87SKrzysztof Kozlowski - description: LPASS LPI MCC registers 25*2b4e7a87SKrzysztof Kozlowski 26*2b4e7a87SKrzysztof Kozlowski clocks: 27*2b4e7a87SKrzysztof Kozlowski items: 28*2b4e7a87SKrzysztof Kozlowski - description: LPASS Core voting clock 29*2b4e7a87SKrzysztof Kozlowski - description: LPASS Audio voting clock 30*2b4e7a87SKrzysztof Kozlowski 31*2b4e7a87SKrzysztof Kozlowski clock-names: 32*2b4e7a87SKrzysztof Kozlowski items: 33*2b4e7a87SKrzysztof Kozlowski - const: core 34*2b4e7a87SKrzysztof Kozlowski - const: audio 35*2b4e7a87SKrzysztof Kozlowski 36*2b4e7a87SKrzysztof Kozlowski gpio-controller: true 37*2b4e7a87SKrzysztof Kozlowski 38*2b4e7a87SKrzysztof Kozlowski "#gpio-cells": 39*2b4e7a87SKrzysztof Kozlowski description: Specifying the pin number and flags, as defined in 40*2b4e7a87SKrzysztof Kozlowski include/dt-bindings/gpio/gpio.h 41*2b4e7a87SKrzysztof Kozlowski const: 2 42*2b4e7a87SKrzysztof Kozlowski 43*2b4e7a87SKrzysztof Kozlowski gpio-ranges: 44*2b4e7a87SKrzysztof Kozlowski maxItems: 1 45*2b4e7a87SKrzysztof Kozlowski 46*2b4e7a87SKrzysztof KozlowskipatternProperties: 47*2b4e7a87SKrzysztof Kozlowski "-state$": 48*2b4e7a87SKrzysztof Kozlowski oneOf: 49*2b4e7a87SKrzysztof Kozlowski - $ref: "#/$defs/qcom-sm8350-lpass-state" 50*2b4e7a87SKrzysztof Kozlowski - patternProperties: 51*2b4e7a87SKrzysztof Kozlowski "-pins$": 52*2b4e7a87SKrzysztof Kozlowski $ref: "#/$defs/qcom-sm8350-lpass-state" 53*2b4e7a87SKrzysztof Kozlowski additionalProperties: false 54*2b4e7a87SKrzysztof Kozlowski 55*2b4e7a87SKrzysztof Kozlowski$defs: 56*2b4e7a87SKrzysztof Kozlowski qcom-sm8350-lpass-state: 57*2b4e7a87SKrzysztof Kozlowski type: object 58*2b4e7a87SKrzysztof Kozlowski description: 59*2b4e7a87SKrzysztof Kozlowski Pinctrl node's client devices use subnodes for desired pin configuration. 60*2b4e7a87SKrzysztof Kozlowski Client device subnodes use below standard properties. 61*2b4e7a87SKrzysztof Kozlowski $ref: /schemas/pinctrl/pincfg-node.yaml 62*2b4e7a87SKrzysztof Kozlowski 63*2b4e7a87SKrzysztof Kozlowski properties: 64*2b4e7a87SKrzysztof Kozlowski pins: 65*2b4e7a87SKrzysztof Kozlowski description: 66*2b4e7a87SKrzysztof Kozlowski List of gpio pins affected by the properties specified in this 67*2b4e7a87SKrzysztof Kozlowski subnode. 68*2b4e7a87SKrzysztof Kozlowski items: 69*2b4e7a87SKrzysztof Kozlowski pattern: "^gpio([0-9]|1[0-9]|2[0-2])$" 70*2b4e7a87SKrzysztof Kozlowski 71*2b4e7a87SKrzysztof Kozlowski function: 72*2b4e7a87SKrzysztof Kozlowski enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk, 73*2b4e7a87SKrzysztof Kozlowski dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b, 74*2b4e7a87SKrzysztof Kozlowski ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk, 75*2b4e7a87SKrzysztof Kozlowski i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk, 76*2b4e7a87SKrzysztof Kozlowski i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, i2s4_clk, 77*2b4e7a87SKrzysztof Kozlowski i2s4_data, i2s4_ws, slimbus_clk, slimbus_data, swr_rx_clk, 78*2b4e7a87SKrzysztof Kozlowski swr_rx_data, swr_tx_clk, swr_tx_data, wsa_swr_clk, 79*2b4e7a87SKrzysztof Kozlowski wsa_swr_data, wsa2_swr_clk, wsa2_swr_data ] 80*2b4e7a87SKrzysztof Kozlowski description: 81*2b4e7a87SKrzysztof Kozlowski Specify the alternative function to be configured for the specified 82*2b4e7a87SKrzysztof Kozlowski pins. 83*2b4e7a87SKrzysztof Kozlowski 84*2b4e7a87SKrzysztof Kozlowski drive-strength: 85*2b4e7a87SKrzysztof Kozlowski enum: [2, 4, 6, 8, 10, 12, 14, 16] 86*2b4e7a87SKrzysztof Kozlowski default: 2 87*2b4e7a87SKrzysztof Kozlowski description: 88*2b4e7a87SKrzysztof Kozlowski Selects the drive strength for the specified pins, in mA. 89*2b4e7a87SKrzysztof Kozlowski 90*2b4e7a87SKrzysztof Kozlowski slew-rate: 91*2b4e7a87SKrzysztof Kozlowski enum: [0, 1, 2, 3] 92*2b4e7a87SKrzysztof Kozlowski default: 0 93*2b4e7a87SKrzysztof Kozlowski description: | 94*2b4e7a87SKrzysztof Kozlowski 0: No adjustments 95*2b4e7a87SKrzysztof Kozlowski 1: Higher Slew rate (faster edges) 96*2b4e7a87SKrzysztof Kozlowski 2: Lower Slew rate (slower edges) 97*2b4e7a87SKrzysztof Kozlowski 3: Reserved (No adjustments) 98*2b4e7a87SKrzysztof Kozlowski 99*2b4e7a87SKrzysztof Kozlowski bias-bus-hold: true 100*2b4e7a87SKrzysztof Kozlowski bias-pull-down: true 101*2b4e7a87SKrzysztof Kozlowski bias-pull-up: true 102*2b4e7a87SKrzysztof Kozlowski bias-disable: true 103*2b4e7a87SKrzysztof Kozlowski input-enable: true 104*2b4e7a87SKrzysztof Kozlowski output-high: true 105*2b4e7a87SKrzysztof Kozlowski output-low: true 106*2b4e7a87SKrzysztof Kozlowski 107*2b4e7a87SKrzysztof Kozlowski required: 108*2b4e7a87SKrzysztof Kozlowski - pins 109*2b4e7a87SKrzysztof Kozlowski - function 110*2b4e7a87SKrzysztof Kozlowski 111*2b4e7a87SKrzysztof Kozlowski additionalProperties: false 112*2b4e7a87SKrzysztof Kozlowski 113*2b4e7a87SKrzysztof KozlowskiallOf: 114*2b4e7a87SKrzysztof Kozlowski - $ref: pinctrl.yaml# 115*2b4e7a87SKrzysztof Kozlowski 116*2b4e7a87SKrzysztof Kozlowskirequired: 117*2b4e7a87SKrzysztof Kozlowski - compatible 118*2b4e7a87SKrzysztof Kozlowski - reg 119*2b4e7a87SKrzysztof Kozlowski - clocks 120*2b4e7a87SKrzysztof Kozlowski - clock-names 121*2b4e7a87SKrzysztof Kozlowski - gpio-controller 122*2b4e7a87SKrzysztof Kozlowski - "#gpio-cells" 123*2b4e7a87SKrzysztof Kozlowski - gpio-ranges 124*2b4e7a87SKrzysztof Kozlowski 125*2b4e7a87SKrzysztof KozlowskiadditionalProperties: false 126*2b4e7a87SKrzysztof Kozlowski 127*2b4e7a87SKrzysztof Kozlowskiexamples: 128*2b4e7a87SKrzysztof Kozlowski - | 129*2b4e7a87SKrzysztof Kozlowski #include <dt-bindings/sound/qcom,q6afe.h> 130*2b4e7a87SKrzysztof Kozlowski 131*2b4e7a87SKrzysztof Kozlowski lpass_tlmm: pinctrl@33c0000 { 132*2b4e7a87SKrzysztof Kozlowski compatible = "qcom,sm8350-lpass-lpi-pinctrl"; 133*2b4e7a87SKrzysztof Kozlowski reg = <0x033c0000 0x20000>, 134*2b4e7a87SKrzysztof Kozlowski <0x03550000 0x10000>; 135*2b4e7a87SKrzysztof Kozlowski 136*2b4e7a87SKrzysztof Kozlowski clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>, 137*2b4e7a87SKrzysztof Kozlowski <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>; 138*2b4e7a87SKrzysztof Kozlowski clock-names = "core", "audio"; 139*2b4e7a87SKrzysztof Kozlowski 140*2b4e7a87SKrzysztof Kozlowski gpio-controller; 141*2b4e7a87SKrzysztof Kozlowski #gpio-cells = <2>; 142*2b4e7a87SKrzysztof Kozlowski gpio-ranges = <&lpass_tlmm 0 0 15>; 143*2b4e7a87SKrzysztof Kozlowski }; 144