xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,sc8280xp-lpass-lpi-pinctrl.yaml (revision 3c90b1ba8cc49b3c485e4477b9977e52a16509d3)
1958bb025SSrinivas Kandagatla# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2958bb025SSrinivas Kandagatla%YAML 1.2
3958bb025SSrinivas Kandagatla---
4958bb025SSrinivas Kandagatla$id: http://devicetree.org/schemas/pinctrl/qcom,sc8280xp-lpass-lpi-pinctrl.yaml#
5958bb025SSrinivas Kandagatla$schema: http://devicetree.org/meta-schemas/core.yaml#
6958bb025SSrinivas Kandagatla
7e1c36247SKrzysztof Kozlowskititle: Qualcomm SC8280XP SoC LPASS LPI TLMM
8958bb025SSrinivas Kandagatla
9958bb025SSrinivas Kandagatlamaintainers:
10958bb025SSrinivas Kandagatla  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11958bb025SSrinivas Kandagatla
12e1c36247SKrzysztof Kozlowskidescription:
13e1c36247SKrzysztof Kozlowski  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
14e1c36247SKrzysztof Kozlowski  (LPASS) Low Power Island (LPI) of Qualcomm SC8280XP SoC.
15958bb025SSrinivas Kandagatla
16958bb025SSrinivas Kandagatlaproperties:
17958bb025SSrinivas Kandagatla  compatible:
18958bb025SSrinivas Kandagatla    const: qcom,sc8280xp-lpass-lpi-pinctrl
19958bb025SSrinivas Kandagatla
20958bb025SSrinivas Kandagatla  reg:
21958bb025SSrinivas Kandagatla    items:
22958bb025SSrinivas Kandagatla      - description: LPASS LPI TLMM Control and Status registers
23958bb025SSrinivas Kandagatla      - description: LPASS LPI pins SLEW registers
24958bb025SSrinivas Kandagatla
25958bb025SSrinivas Kandagatla  clocks:
26958bb025SSrinivas Kandagatla    items:
27958bb025SSrinivas Kandagatla      - description: LPASS Core voting clock
28958bb025SSrinivas Kandagatla      - description: LPASS Audio voting clock
29958bb025SSrinivas Kandagatla
30958bb025SSrinivas Kandagatla  clock-names:
31958bb025SSrinivas Kandagatla    items:
32958bb025SSrinivas Kandagatla      - const: core
33958bb025SSrinivas Kandagatla      - const: audio
34958bb025SSrinivas Kandagatla
35958bb025SSrinivas Kandagatla  gpio-controller: true
36958bb025SSrinivas Kandagatla
37e1c36247SKrzysztof Kozlowski  "#gpio-cells":
38958bb025SSrinivas Kandagatla    description: Specifying the pin number and flags, as defined in
39958bb025SSrinivas Kandagatla      include/dt-bindings/gpio/gpio.h
40958bb025SSrinivas Kandagatla    const: 2
41958bb025SSrinivas Kandagatla
42958bb025SSrinivas Kandagatla  gpio-ranges:
43958bb025SSrinivas Kandagatla    maxItems: 1
44958bb025SSrinivas Kandagatla
45958bb025SSrinivas KandagatlapatternProperties:
46b47a6c8bSKrzysztof Kozlowski  "-state$":
47b47a6c8bSKrzysztof Kozlowski    oneOf:
48b47a6c8bSKrzysztof Kozlowski      - $ref: "#/$defs/qcom-sc8280xp-lpass-state"
49b47a6c8bSKrzysztof Kozlowski      - patternProperties:
50b47a6c8bSKrzysztof Kozlowski          "-pins$":
51b47a6c8bSKrzysztof Kozlowski            $ref: "#/$defs/qcom-sc8280xp-lpass-state"
52b47a6c8bSKrzysztof Kozlowski        additionalProperties: false
53b47a6c8bSKrzysztof Kozlowski
54b47a6c8bSKrzysztof Kozlowski$defs:
55b47a6c8bSKrzysztof Kozlowski  qcom-sc8280xp-lpass-state:
56958bb025SSrinivas Kandagatla    type: object
57958bb025SSrinivas Kandagatla    description:
58958bb025SSrinivas Kandagatla      Pinctrl node's client devices use subnodes for desired pin configuration.
59958bb025SSrinivas Kandagatla      Client device subnodes use below standard properties.
60958bb025SSrinivas Kandagatla    $ref: /schemas/pinctrl/pincfg-node.yaml
61958bb025SSrinivas Kandagatla
62958bb025SSrinivas Kandagatla    properties:
63958bb025SSrinivas Kandagatla      pins:
64958bb025SSrinivas Kandagatla        description:
65958bb025SSrinivas Kandagatla          List of gpio pins affected by the properties specified in this
66958bb025SSrinivas Kandagatla          subnode.
67958bb025SSrinivas Kandagatla        items:
68*3c90b1baSKrzysztof Kozlowski          pattern: "^gpio([0-9]|1[0-8])$"
69958bb025SSrinivas Kandagatla
70958bb025SSrinivas Kandagatla      function:
71958bb025SSrinivas Kandagatla        enum: [ swr_tx_clk, swr_tx_data, swr_rx_clk, swr_rx_data,
72958bb025SSrinivas Kandagatla                dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic4_clk,
73958bb025SSrinivas Kandagatla                dmic4_data, i2s2_clk, i2s2_ws, dmic3_clk, dmic3_data,
74958bb025SSrinivas Kandagatla                qua_mi2s_sclk, qua_mi2s_ws, qua_mi2s_data, i2s1_clk, i2s1_ws,
75958bb025SSrinivas Kandagatla                i2s1_data, wsa_swr_clk, wsa_swr_data, wsa2_swr_clk,
76958bb025SSrinivas Kandagatla                wsa2_swr_data, i2s2_data, i2s3_clk, i2s3_ws, i2s3_data,
77958bb025SSrinivas Kandagatla                ext_mclk1_c, ext_mclk1_b, ext_mclk1_a ]
78958bb025SSrinivas Kandagatla        description:
79958bb025SSrinivas Kandagatla          Specify the alternative function to be configured for the specified
80958bb025SSrinivas Kandagatla          pins.
81958bb025SSrinivas Kandagatla
82958bb025SSrinivas Kandagatla      drive-strength:
83958bb025SSrinivas Kandagatla        enum: [2, 4, 6, 8, 10, 12, 14, 16]
84958bb025SSrinivas Kandagatla        default: 2
85958bb025SSrinivas Kandagatla        description:
86958bb025SSrinivas Kandagatla          Selects the drive strength for the specified pins, in mA.
87958bb025SSrinivas Kandagatla
88958bb025SSrinivas Kandagatla      slew-rate:
89958bb025SSrinivas Kandagatla        enum: [0, 1, 2, 3]
90958bb025SSrinivas Kandagatla        default: 0
91958bb025SSrinivas Kandagatla        description: |
92958bb025SSrinivas Kandagatla          0: No adjustments
93958bb025SSrinivas Kandagatla          1: Higher Slew rate (faster edges)
94958bb025SSrinivas Kandagatla          2: Lower Slew rate (slower edges)
95958bb025SSrinivas Kandagatla          3: Reserved (No adjustments)
96958bb025SSrinivas Kandagatla
97958bb025SSrinivas Kandagatla      bias-pull-down: true
98958bb025SSrinivas Kandagatla
99958bb025SSrinivas Kandagatla      bias-pull-up: true
100958bb025SSrinivas Kandagatla
101958bb025SSrinivas Kandagatla      bias-disable: true
102958bb025SSrinivas Kandagatla
103958bb025SSrinivas Kandagatla      output-high: true
104958bb025SSrinivas Kandagatla
105958bb025SSrinivas Kandagatla      output-low: true
106958bb025SSrinivas Kandagatla
107958bb025SSrinivas Kandagatla    required:
108958bb025SSrinivas Kandagatla      - pins
109958bb025SSrinivas Kandagatla      - function
110958bb025SSrinivas Kandagatla
111958bb025SSrinivas Kandagatla    additionalProperties: false
112958bb025SSrinivas Kandagatla
113958bb025SSrinivas KandagatlaallOf:
114958bb025SSrinivas Kandagatla  - $ref: pinctrl.yaml#
115958bb025SSrinivas Kandagatla
116958bb025SSrinivas Kandagatlarequired:
117958bb025SSrinivas Kandagatla  - compatible
118958bb025SSrinivas Kandagatla  - reg
119958bb025SSrinivas Kandagatla  - clocks
120958bb025SSrinivas Kandagatla  - clock-names
121958bb025SSrinivas Kandagatla  - gpio-controller
122e1c36247SKrzysztof Kozlowski  - "#gpio-cells"
123958bb025SSrinivas Kandagatla  - gpio-ranges
124958bb025SSrinivas Kandagatla
125958bb025SSrinivas KandagatlaadditionalProperties: false
126958bb025SSrinivas Kandagatla
127958bb025SSrinivas Kandagatlaexamples:
128958bb025SSrinivas Kandagatla  - |
129958bb025SSrinivas Kandagatla    #include <dt-bindings/sound/qcom,q6afe.h>
130958bb025SSrinivas Kandagatla    pinctrl@33c0000 {
131958bb025SSrinivas Kandagatla        compatible = "qcom,sc8280xp-lpass-lpi-pinctrl";
132958bb025SSrinivas Kandagatla        reg = <0x33c0000 0x20000>,
133958bb025SSrinivas Kandagatla              <0x3550000 0x10000>;
134958bb025SSrinivas Kandagatla        clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
135958bb025SSrinivas Kandagatla                 <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
136958bb025SSrinivas Kandagatla        clock-names = "core", "audio";
137958bb025SSrinivas Kandagatla        gpio-controller;
138958bb025SSrinivas Kandagatla        #gpio-cells = <2>;
139958bb025SSrinivas Kandagatla        gpio-ranges = <&lpi_tlmm 0 0 18>;
140b47a6c8bSKrzysztof Kozlowski
141b47a6c8bSKrzysztof Kozlowski        dmic01-state {
142b47a6c8bSKrzysztof Kozlowski            dmic01-clk-pins {
143b47a6c8bSKrzysztof Kozlowski                pins = "gpio16";
144b47a6c8bSKrzysztof Kozlowski                function = "dmic1_clk";
145b47a6c8bSKrzysztof Kozlowski            };
146b47a6c8bSKrzysztof Kozlowski
147b47a6c8bSKrzysztof Kozlowski            dmic01-clk-sleep-pins {
148b47a6c8bSKrzysztof Kozlowski                pins = "gpio16";
149b47a6c8bSKrzysztof Kozlowski                function = "dmic1_clk";
150b47a6c8bSKrzysztof Kozlowski            };
151b47a6c8bSKrzysztof Kozlowski        };
152b47a6c8bSKrzysztof Kozlowski
153b47a6c8bSKrzysztof Kozlowski        tx-swr-data-sleep-state {
154b47a6c8bSKrzysztof Kozlowski            pins = "gpio0", "gpio1";
155b47a6c8bSKrzysztof Kozlowski            function = "swr_tx_data";
156b47a6c8bSKrzysztof Kozlowski        };
157958bb025SSrinivas Kandagatla    };
158