1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/qcom,sm6115-lpass-lpi-pinctrl.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SM6115 SoC LPASS LPI TLMM
8
9maintainers:
10  - Konrad Dybcio <konradybcio@kernel.org>
11  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
12
13description:
14  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
15  (LPASS) Low Power Island (LPI) of Qualcomm SM6115 SoC.
16
17properties:
18  compatible:
19    const: qcom,sm6115-lpass-lpi-pinctrl
20
21  reg:
22    items:
23      - description: LPASS LPI TLMM Control and Status registers
24      - description: LPASS LPI MCC registers
25
26  clocks:
27    items:
28      - description: LPASS Audio voting clock
29
30  clock-names:
31    items:
32      - const: audio
33
34patternProperties:
35  "-state$":
36    oneOf:
37      - $ref: "#/$defs/qcom-sm6115-lpass-state"
38      - patternProperties:
39          "-pins$":
40            $ref: "#/$defs/qcom-sm6115-lpass-state"
41        additionalProperties: false
42
43$defs:
44  qcom-sm6115-lpass-state:
45    type: object
46    description:
47      Pinctrl node's client devices use subnodes for desired pin configuration.
48      Client device subnodes use below standard properties.
49    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
50    unevaluatedProperties: false
51
52    properties:
53      pins:
54        description:
55          List of gpio pins affected by the properties specified in this
56          subnode.
57        items:
58          pattern: "^gpio([0-9]|1[0-8])$"
59
60      function:
61        enum: [ dmic01_clk, dmic01_data, dmic23_clk, dmic23_data, gpio, i2s1_clk,
62                i2s1_data, i2s1_ws, i2s2_clk, i2s2_data, i2s2_ws, i2s3_clk,
63                i2s3_data, i2s3_ws, qua_mi2s_data, qua_mi2s_sclk, qua_mi2s_ws,
64                swr_rx_clk, swr_rx_data, swr_tx_clk, swr_tx_data, wsa_mclk ]
65        description:
66          Specify the alternative function to be configured for the specified
67          pins.
68
69
70allOf:
71  - $ref: qcom,lpass-lpi-common.yaml#
72
73required:
74  - compatible
75  - reg
76  - clocks
77  - clock-names
78
79unevaluatedProperties: false
80
81examples:
82  - |
83    #include <dt-bindings/sound/qcom,q6afe.h>
84
85    lpass_tlmm: pinctrl@a7c0000 {
86        compatible = "qcom,sm6115-lpass-lpi-pinctrl";
87        reg = <0x0a7c0000 0x20000>,
88              <0x0a950000 0x10000>;
89        clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
90        clock-names = "audio";
91
92        gpio-controller;
93        #gpio-cells = <2>;
94        gpio-ranges = <&lpass_tlmm 0 0 19>;
95    };
96