1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8d13bc63SEmmanuel Vadot%YAML 1.2 3*8d13bc63SEmmanuel Vadot--- 4*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml# 5*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8d13bc63SEmmanuel Vadot 7*8d13bc63SEmmanuel Vadottitle: Qualcomm SM8650 SoC LPASS LPI TLMM 8*8d13bc63SEmmanuel Vadot 9*8d13bc63SEmmanuel Vadotmaintainers: 10*8d13bc63SEmmanuel Vadot - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 11*8d13bc63SEmmanuel Vadot - Srinivas Kandagatla <srinivas.kandagatla@linaro.org> 12*8d13bc63SEmmanuel Vadot 13*8d13bc63SEmmanuel Vadotdescription: 14*8d13bc63SEmmanuel Vadot Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem 15*8d13bc63SEmmanuel Vadot (LPASS) Low Power Island (LPI) of Qualcomm SM8650 SoC. 16*8d13bc63SEmmanuel Vadot 17*8d13bc63SEmmanuel Vadotproperties: 18*8d13bc63SEmmanuel Vadot compatible: 19*8d13bc63SEmmanuel Vadot const: qcom,sm8650-lpass-lpi-pinctrl 20*8d13bc63SEmmanuel Vadot 21*8d13bc63SEmmanuel Vadot reg: 22*8d13bc63SEmmanuel Vadot items: 23*8d13bc63SEmmanuel Vadot - description: LPASS LPI TLMM Control and Status registers 24*8d13bc63SEmmanuel Vadot 25*8d13bc63SEmmanuel Vadot clocks: 26*8d13bc63SEmmanuel Vadot items: 27*8d13bc63SEmmanuel Vadot - description: LPASS Core voting clock 28*8d13bc63SEmmanuel Vadot - description: LPASS Audio voting clock 29*8d13bc63SEmmanuel Vadot 30*8d13bc63SEmmanuel Vadot clock-names: 31*8d13bc63SEmmanuel Vadot items: 32*8d13bc63SEmmanuel Vadot - const: core 33*8d13bc63SEmmanuel Vadot - const: audio 34*8d13bc63SEmmanuel Vadot 35*8d13bc63SEmmanuel VadotpatternProperties: 36*8d13bc63SEmmanuel Vadot "-state$": 37*8d13bc63SEmmanuel Vadot oneOf: 38*8d13bc63SEmmanuel Vadot - $ref: "#/$defs/qcom-sm8650-lpass-state" 39*8d13bc63SEmmanuel Vadot - patternProperties: 40*8d13bc63SEmmanuel Vadot "-pins$": 41*8d13bc63SEmmanuel Vadot $ref: "#/$defs/qcom-sm8650-lpass-state" 42*8d13bc63SEmmanuel Vadot additionalProperties: false 43*8d13bc63SEmmanuel Vadot 44*8d13bc63SEmmanuel Vadot$defs: 45*8d13bc63SEmmanuel Vadot qcom-sm8650-lpass-state: 46*8d13bc63SEmmanuel Vadot type: object 47*8d13bc63SEmmanuel Vadot description: 48*8d13bc63SEmmanuel Vadot Pinctrl node's client devices use subnodes for desired pin configuration. 49*8d13bc63SEmmanuel Vadot Client device subnodes use below standard properties. 50*8d13bc63SEmmanuel Vadot $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state 51*8d13bc63SEmmanuel Vadot unevaluatedProperties: false 52*8d13bc63SEmmanuel Vadot 53*8d13bc63SEmmanuel Vadot properties: 54*8d13bc63SEmmanuel Vadot pins: 55*8d13bc63SEmmanuel Vadot description: 56*8d13bc63SEmmanuel Vadot List of gpio pins affected by the properties specified in this 57*8d13bc63SEmmanuel Vadot subnode. 58*8d13bc63SEmmanuel Vadot items: 59*8d13bc63SEmmanuel Vadot pattern: "^gpio([0-9]|1[0-9]|2[0-2])$" 60*8d13bc63SEmmanuel Vadot 61*8d13bc63SEmmanuel Vadot function: 62*8d13bc63SEmmanuel Vadot enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk, 63*8d13bc63SEmmanuel Vadot dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b, 64*8d13bc63SEmmanuel Vadot ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk, 65*8d13bc63SEmmanuel Vadot i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk, 66*8d13bc63SEmmanuel Vadot i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, i2s4_clk, 67*8d13bc63SEmmanuel Vadot i2s4_data, i2s4_ws, qca_swr_clk, qca_swr_data, slimbus_clk, 68*8d13bc63SEmmanuel Vadot slimbus_data, swr_rx_clk, swr_rx_data, swr_tx_clk, swr_tx_data, 69*8d13bc63SEmmanuel Vadot wsa_swr_clk, wsa_swr_data, wsa2_swr_clk, wsa2_swr_data ] 70*8d13bc63SEmmanuel Vadot description: 71*8d13bc63SEmmanuel Vadot Specify the alternative function to be configured for the specified 72*8d13bc63SEmmanuel Vadot pins. 73*8d13bc63SEmmanuel Vadot 74*8d13bc63SEmmanuel VadotallOf: 75*8d13bc63SEmmanuel Vadot - $ref: qcom,lpass-lpi-common.yaml# 76*8d13bc63SEmmanuel Vadot 77*8d13bc63SEmmanuel Vadotrequired: 78*8d13bc63SEmmanuel Vadot - compatible 79*8d13bc63SEmmanuel Vadot - reg 80*8d13bc63SEmmanuel Vadot - clocks 81*8d13bc63SEmmanuel Vadot - clock-names 82*8d13bc63SEmmanuel Vadot 83*8d13bc63SEmmanuel VadotunevaluatedProperties: false 84*8d13bc63SEmmanuel Vadot 85*8d13bc63SEmmanuel Vadotexamples: 86*8d13bc63SEmmanuel Vadot - | 87*8d13bc63SEmmanuel Vadot #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h> 88*8d13bc63SEmmanuel Vadot 89*8d13bc63SEmmanuel Vadot lpass_tlmm: pinctrl@6e80000 { 90*8d13bc63SEmmanuel Vadot compatible = "qcom,sm8650-lpass-lpi-pinctrl"; 91*8d13bc63SEmmanuel Vadot reg = <0x06e80000 0x20000>; 92*8d13bc63SEmmanuel Vadot 93*8d13bc63SEmmanuel Vadot clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>, 94*8d13bc63SEmmanuel Vadot <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>; 95*8d13bc63SEmmanuel Vadot clock-names = "core", "audio"; 96*8d13bc63SEmmanuel Vadot 97*8d13bc63SEmmanuel Vadot gpio-controller; 98*8d13bc63SEmmanuel Vadot #gpio-cells = <2>; 99*8d13bc63SEmmanuel Vadot gpio-ranges = <&lpass_tlmm 0 0 23>; 100*8d13bc63SEmmanuel Vadot 101*8d13bc63SEmmanuel Vadot tx-swr-sleep-clk-state { 102*8d13bc63SEmmanuel Vadot pins = "gpio0"; 103*8d13bc63SEmmanuel Vadot function = "swr_tx_clk"; 104*8d13bc63SEmmanuel Vadot drive-strength = <2>; 105*8d13bc63SEmmanuel Vadot bias-pull-down; 106*8d13bc63SEmmanuel Vadot }; 107*8d13bc63SEmmanuel Vadot }; 108