xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,sm8550-lpass-lpi-pinctrl.yaml (revision 5a5ecedc4b57ec072b1ab780352087958fe2527e)
1268e97ccSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2268e97ccSKrzysztof Kozlowski%YAML 1.2
3268e97ccSKrzysztof Kozlowski---
4268e97ccSKrzysztof Kozlowski$id: http://devicetree.org/schemas/pinctrl/qcom,sm8550-lpass-lpi-pinctrl.yaml#
5268e97ccSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6268e97ccSKrzysztof Kozlowski
7268e97ccSKrzysztof Kozlowskititle: Qualcomm SM8550 SoC LPASS LPI TLMM
8268e97ccSKrzysztof Kozlowski
9268e97ccSKrzysztof Kozlowskimaintainers:
10268e97ccSKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11268e97ccSKrzysztof Kozlowski  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
12268e97ccSKrzysztof Kozlowski
13268e97ccSKrzysztof Kozlowskidescription:
14268e97ccSKrzysztof Kozlowski  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
15268e97ccSKrzysztof Kozlowski  (LPASS) Low Power Island (LPI) of Qualcomm SM8550 SoC.
16268e97ccSKrzysztof Kozlowski
17268e97ccSKrzysztof Kozlowskiproperties:
18268e97ccSKrzysztof Kozlowski  compatible:
19253bad7fSKrzysztof Kozlowski    oneOf:
20253bad7fSKrzysztof Kozlowski      - const: qcom,sm8550-lpass-lpi-pinctrl
21253bad7fSKrzysztof Kozlowski      - items:
22253bad7fSKrzysztof Kozlowski          - const: qcom,x1e80100-lpass-lpi-pinctrl
23253bad7fSKrzysztof Kozlowski          - const: qcom,sm8550-lpass-lpi-pinctrl
24268e97ccSKrzysztof Kozlowski
25268e97ccSKrzysztof Kozlowski  reg:
26268e97ccSKrzysztof Kozlowski    items:
27268e97ccSKrzysztof Kozlowski      - description: LPASS LPI TLMM Control and Status registers
283abe84eaSKrzysztof Kozlowski      - description: LPASS LPI MCC registers
29268e97ccSKrzysztof Kozlowski
30268e97ccSKrzysztof Kozlowski  clocks:
31268e97ccSKrzysztof Kozlowski    items:
32268e97ccSKrzysztof Kozlowski      - description: LPASS Core voting clock
33268e97ccSKrzysztof Kozlowski      - description: LPASS Audio voting clock
34268e97ccSKrzysztof Kozlowski
35268e97ccSKrzysztof Kozlowski  clock-names:
36268e97ccSKrzysztof Kozlowski    items:
37268e97ccSKrzysztof Kozlowski      - const: core
38268e97ccSKrzysztof Kozlowski      - const: audio
39268e97ccSKrzysztof Kozlowski
40268e97ccSKrzysztof KozlowskipatternProperties:
41268e97ccSKrzysztof Kozlowski  "-state$":
42268e97ccSKrzysztof Kozlowski    oneOf:
43268e97ccSKrzysztof Kozlowski      - $ref: "#/$defs/qcom-sm8550-lpass-state"
44268e97ccSKrzysztof Kozlowski      - patternProperties:
45268e97ccSKrzysztof Kozlowski          "-pins$":
46268e97ccSKrzysztof Kozlowski            $ref: "#/$defs/qcom-sm8550-lpass-state"
47268e97ccSKrzysztof Kozlowski        additionalProperties: false
48268e97ccSKrzysztof Kozlowski
49268e97ccSKrzysztof Kozlowski$defs:
50268e97ccSKrzysztof Kozlowski  qcom-sm8550-lpass-state:
51268e97ccSKrzysztof Kozlowski    type: object
52268e97ccSKrzysztof Kozlowski    description:
53268e97ccSKrzysztof Kozlowski      Pinctrl node's client devices use subnodes for desired pin configuration.
54268e97ccSKrzysztof Kozlowski      Client device subnodes use below standard properties.
55*5a5ecedcSKrzysztof Kozlowski    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
56*5a5ecedcSKrzysztof Kozlowski    unevaluatedProperties: false
57268e97ccSKrzysztof Kozlowski
58268e97ccSKrzysztof Kozlowski    properties:
59268e97ccSKrzysztof Kozlowski      pins:
60268e97ccSKrzysztof Kozlowski        description:
61268e97ccSKrzysztof Kozlowski          List of gpio pins affected by the properties specified in this
62268e97ccSKrzysztof Kozlowski          subnode.
63268e97ccSKrzysztof Kozlowski        items:
64268e97ccSKrzysztof Kozlowski          pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
65268e97ccSKrzysztof Kozlowski
66268e97ccSKrzysztof Kozlowski      function:
67268e97ccSKrzysztof Kozlowski        enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk,
68268e97ccSKrzysztof Kozlowski                dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b,
69268e97ccSKrzysztof Kozlowski                ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk,
70268e97ccSKrzysztof Kozlowski                i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk,
71268e97ccSKrzysztof Kozlowski                i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, i2s4_clk,
72268e97ccSKrzysztof Kozlowski                i2s4_data, i2s4_ws, slimbus_clk, slimbus_data, swr_rx_clk,
73268e97ccSKrzysztof Kozlowski                swr_rx_data, swr_tx_clk, swr_tx_data, wsa_swr_clk,
74268e97ccSKrzysztof Kozlowski                wsa_swr_data, wsa2_swr_clk, wsa2_swr_data ]
75268e97ccSKrzysztof Kozlowski        description:
76268e97ccSKrzysztof Kozlowski          Specify the alternative function to be configured for the specified
77268e97ccSKrzysztof Kozlowski          pins.
78268e97ccSKrzysztof Kozlowski
79268e97ccSKrzysztof KozlowskiallOf:
80*5a5ecedcSKrzysztof Kozlowski  - $ref: qcom,lpass-lpi-common.yaml#
81268e97ccSKrzysztof Kozlowski
82268e97ccSKrzysztof Kozlowskirequired:
83268e97ccSKrzysztof Kozlowski  - compatible
84268e97ccSKrzysztof Kozlowski  - reg
85268e97ccSKrzysztof Kozlowski  - clocks
86268e97ccSKrzysztof Kozlowski  - clock-names
87268e97ccSKrzysztof Kozlowski
88*5a5ecedcSKrzysztof KozlowskiunevaluatedProperties: false
89268e97ccSKrzysztof Kozlowski
90268e97ccSKrzysztof Kozlowskiexamples:
91268e97ccSKrzysztof Kozlowski  - |
92268e97ccSKrzysztof Kozlowski    #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
93268e97ccSKrzysztof Kozlowski
94268e97ccSKrzysztof Kozlowski    lpass_tlmm: pinctrl@6e80000 {
95268e97ccSKrzysztof Kozlowski        compatible = "qcom,sm8550-lpass-lpi-pinctrl";
96268e97ccSKrzysztof Kozlowski        reg = <0x06e80000 0x20000>,
97268e97ccSKrzysztof Kozlowski              <0x0725a000 0x10000>;
98268e97ccSKrzysztof Kozlowski
99268e97ccSKrzysztof Kozlowski        clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
100268e97ccSKrzysztof Kozlowski                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
101268e97ccSKrzysztof Kozlowski        clock-names = "core", "audio";
102268e97ccSKrzysztof Kozlowski
103268e97ccSKrzysztof Kozlowski        gpio-controller;
104268e97ccSKrzysztof Kozlowski        #gpio-cells = <2>;
105268e97ccSKrzysztof Kozlowski        gpio-ranges = <&lpass_tlmm 0 0 23>;
106268e97ccSKrzysztof Kozlowski
107268e97ccSKrzysztof Kozlowski        tx-swr-sleep-clk-state {
108268e97ccSKrzysztof Kozlowski            pins = "gpio0";
109268e97ccSKrzysztof Kozlowski            function = "swr_tx_clk";
110268e97ccSKrzysztof Kozlowski            drive-strength = <2>;
111268e97ccSKrzysztof Kozlowski            bias-pull-down;
112268e97ccSKrzysztof Kozlowski        };
113268e97ccSKrzysztof Kozlowski    };
114