xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,sm8250-lpass-lpi-pinctrl.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1e343cff7SSrinivasa Rao Mandadapu# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2e343cff7SSrinivasa Rao Mandadapu%YAML 1.2
3e343cff7SSrinivasa Rao Mandadapu---
4e343cff7SSrinivasa Rao Mandadapu$id: http://devicetree.org/schemas/pinctrl/qcom,sm8250-lpass-lpi-pinctrl.yaml#
5e343cff7SSrinivasa Rao Mandadapu$schema: http://devicetree.org/meta-schemas/core.yaml#
6e343cff7SSrinivasa Rao Mandadapu
727404203SKrzysztof Kozlowskititle: Qualcomm SM8250 SoC LPASS LPI TLMM
8e343cff7SSrinivasa Rao Mandadapu
9e343cff7SSrinivasa Rao Mandadapumaintainers:
10e343cff7SSrinivasa Rao Mandadapu  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11e343cff7SSrinivasa Rao Mandadapu
1227404203SKrzysztof Kozlowskidescription:
1327404203SKrzysztof Kozlowski  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
1427404203SKrzysztof Kozlowski  (LPASS) Low Power Island (LPI) of Qualcomm SM8250 SoC.
15e343cff7SSrinivasa Rao Mandadapu
16e343cff7SSrinivasa Rao Mandadapuproperties:
17e343cff7SSrinivasa Rao Mandadapu  compatible:
18e343cff7SSrinivasa Rao Mandadapu    const: qcom,sm8250-lpass-lpi-pinctrl
19e343cff7SSrinivasa Rao Mandadapu
20e343cff7SSrinivasa Rao Mandadapu  reg:
21e343cff7SSrinivasa Rao Mandadapu    maxItems: 2
22e343cff7SSrinivasa Rao Mandadapu
23e343cff7SSrinivasa Rao Mandadapu  clocks:
24e343cff7SSrinivasa Rao Mandadapu    items:
25e343cff7SSrinivasa Rao Mandadapu      - description: LPASS Core voting clock
26e343cff7SSrinivasa Rao Mandadapu      - description: LPASS Audio voting clock
27e343cff7SSrinivasa Rao Mandadapu
28e343cff7SSrinivasa Rao Mandadapu  clock-names:
29e343cff7SSrinivasa Rao Mandadapu    items:
30e343cff7SSrinivasa Rao Mandadapu      - const: core
31e343cff7SSrinivasa Rao Mandadapu      - const: audio
32e343cff7SSrinivasa Rao Mandadapu
33e343cff7SSrinivasa Rao Mandadapu  gpio-controller: true
34e343cff7SSrinivasa Rao Mandadapu
3527404203SKrzysztof Kozlowski  "#gpio-cells":
36e343cff7SSrinivasa Rao Mandadapu    description: Specifying the pin number and flags, as defined in
37e343cff7SSrinivasa Rao Mandadapu      include/dt-bindings/gpio/gpio.h
38e343cff7SSrinivasa Rao Mandadapu    const: 2
39e343cff7SSrinivasa Rao Mandadapu
40e343cff7SSrinivasa Rao Mandadapu  gpio-ranges:
41e343cff7SSrinivasa Rao Mandadapu    maxItems: 1
42e343cff7SSrinivasa Rao Mandadapu
43e343cff7SSrinivasa Rao MandadapupatternProperties:
44351123e6SKrzysztof Kozlowski  "-state$":
45351123e6SKrzysztof Kozlowski    oneOf:
46351123e6SKrzysztof Kozlowski      - $ref: "#/$defs/qcom-sm8250-lpass-state"
47351123e6SKrzysztof Kozlowski      - patternProperties:
48351123e6SKrzysztof Kozlowski          "-pins$":
49351123e6SKrzysztof Kozlowski            $ref: "#/$defs/qcom-sm8250-lpass-state"
50351123e6SKrzysztof Kozlowski        additionalProperties: false
51351123e6SKrzysztof Kozlowski
52351123e6SKrzysztof Kozlowski$defs:
53351123e6SKrzysztof Kozlowski  qcom-sm8250-lpass-state:
54e343cff7SSrinivasa Rao Mandadapu    type: object
55e343cff7SSrinivasa Rao Mandadapu    description:
56e343cff7SSrinivasa Rao Mandadapu      Pinctrl node's client devices use subnodes for desired pin configuration.
57e343cff7SSrinivasa Rao Mandadapu      Client device subnodes use below standard properties.
58*49cd1dd1SRob Herring    $ref: /schemas/pinctrl/pincfg-node.yaml
59e343cff7SSrinivasa Rao Mandadapu
60e343cff7SSrinivasa Rao Mandadapu    properties:
61e343cff7SSrinivasa Rao Mandadapu      pins:
62e343cff7SSrinivasa Rao Mandadapu        description:
63e343cff7SSrinivasa Rao Mandadapu          List of gpio pins affected by the properties specified in this
64e343cff7SSrinivasa Rao Mandadapu          subnode.
65e343cff7SSrinivasa Rao Mandadapu        items:
66e343cff7SSrinivasa Rao Mandadapu          oneOf:
67315dffb8SKrzysztof Kozlowski            - pattern: "^gpio([0-9]|1[0-3])$"
68e343cff7SSrinivasa Rao Mandadapu        minItems: 1
69e343cff7SSrinivasa Rao Mandadapu        maxItems: 14
70e343cff7SSrinivasa Rao Mandadapu
71e343cff7SSrinivasa Rao Mandadapu      function:
72e343cff7SSrinivasa Rao Mandadapu        enum: [ gpio, swr_tx_clk, qua_mi2s_sclk, swr_tx_data, qua_mi2s_ws,
73e343cff7SSrinivasa Rao Mandadapu                qua_mi2s_data, swr_rx_clk, swr_rx_data, dmic1_clk, i2s1_clk,
74e343cff7SSrinivasa Rao Mandadapu                dmic1_data, i2s1_ws, dmic2_clk, dmic2_data, i2s1_data,
75e343cff7SSrinivasa Rao Mandadapu                i2s2_clk, wsa_swr_clk, i2s2_ws, wsa_swr_data, dmic3_clk,
76e343cff7SSrinivasa Rao Mandadapu                dmic3_data, i2s2_data ]
77e343cff7SSrinivasa Rao Mandadapu        description:
78e343cff7SSrinivasa Rao Mandadapu          Specify the alternative function to be configured for the specified
79e343cff7SSrinivasa Rao Mandadapu          pins.
80e343cff7SSrinivasa Rao Mandadapu
81e343cff7SSrinivasa Rao Mandadapu      drive-strength:
82e343cff7SSrinivasa Rao Mandadapu        enum: [2, 4, 6, 8, 10, 12, 14, 16]
83e343cff7SSrinivasa Rao Mandadapu        default: 2
84e343cff7SSrinivasa Rao Mandadapu        description:
85e343cff7SSrinivasa Rao Mandadapu          Selects the drive strength for the specified pins, in mA.
86e343cff7SSrinivasa Rao Mandadapu
87e343cff7SSrinivasa Rao Mandadapu      slew-rate:
88e343cff7SSrinivasa Rao Mandadapu        enum: [0, 1, 2, 3]
89e343cff7SSrinivasa Rao Mandadapu        default: 0
90e343cff7SSrinivasa Rao Mandadapu        description: |
91e343cff7SSrinivasa Rao Mandadapu            0: No adjustments
92e343cff7SSrinivasa Rao Mandadapu            1: Higher Slew rate (faster edges)
93e343cff7SSrinivasa Rao Mandadapu            2: Lower Slew rate (slower edges)
94e343cff7SSrinivasa Rao Mandadapu            3: Reserved (No adjustments)
95e343cff7SSrinivasa Rao Mandadapu
96e343cff7SSrinivasa Rao Mandadapu      bias-pull-down: true
97e343cff7SSrinivasa Rao Mandadapu      bias-pull-up: true
98a76a13c8SKrzysztof Kozlowski      bias-bus-hold: true
99e343cff7SSrinivasa Rao Mandadapu      bias-disable: true
100a76a13c8SKrzysztof Kozlowski      input-enable: true
101e343cff7SSrinivasa Rao Mandadapu      output-high: true
102e343cff7SSrinivasa Rao Mandadapu      output-low: true
103e343cff7SSrinivasa Rao Mandadapu
104e343cff7SSrinivasa Rao Mandadapu    required:
105e343cff7SSrinivasa Rao Mandadapu      - pins
106e343cff7SSrinivasa Rao Mandadapu      - function
107e343cff7SSrinivasa Rao Mandadapu
108e343cff7SSrinivasa Rao Mandadapu    additionalProperties: false
109e343cff7SSrinivasa Rao Mandadapu
110e343cff7SSrinivasa Rao MandadapuallOf:
11127404203SKrzysztof Kozlowski  - $ref: pinctrl.yaml#
112e343cff7SSrinivasa Rao Mandadapu
113e343cff7SSrinivasa Rao Mandadapurequired:
114e343cff7SSrinivasa Rao Mandadapu  - compatible
115e343cff7SSrinivasa Rao Mandadapu  - reg
116e343cff7SSrinivasa Rao Mandadapu  - clocks
117e343cff7SSrinivasa Rao Mandadapu  - clock-names
118e343cff7SSrinivasa Rao Mandadapu  - gpio-controller
11927404203SKrzysztof Kozlowski  - "#gpio-cells"
120e343cff7SSrinivasa Rao Mandadapu  - gpio-ranges
121e343cff7SSrinivasa Rao Mandadapu
122e343cff7SSrinivasa Rao MandadapuadditionalProperties: false
123e343cff7SSrinivasa Rao Mandadapu
124e343cff7SSrinivasa Rao Mandadapuexamples:
125e343cff7SSrinivasa Rao Mandadapu  - |
126e343cff7SSrinivasa Rao Mandadapu    #include <dt-bindings/sound/qcom,q6afe.h>
127e343cff7SSrinivasa Rao Mandadapu    lpi_tlmm: pinctrl@33c0000 {
128e343cff7SSrinivasa Rao Mandadapu        compatible = "qcom,sm8250-lpass-lpi-pinctrl";
129e343cff7SSrinivasa Rao Mandadapu        reg = <0x33c0000 0x20000>,
130e343cff7SSrinivasa Rao Mandadapu              <0x3550000 0x10000>;
131e343cff7SSrinivasa Rao Mandadapu        clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
132e343cff7SSrinivasa Rao Mandadapu                 <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
133e343cff7SSrinivasa Rao Mandadapu        clock-names = "core", "audio";
134e343cff7SSrinivasa Rao Mandadapu        gpio-controller;
135e343cff7SSrinivasa Rao Mandadapu        #gpio-cells = <2>;
136e343cff7SSrinivasa Rao Mandadapu        gpio-ranges = <&lpi_tlmm 0 0 14>;
137351123e6SKrzysztof Kozlowski
138351123e6SKrzysztof Kozlowski        wsa-swr-active-state {
139351123e6SKrzysztof Kozlowski            clk-pins {
140351123e6SKrzysztof Kozlowski                pins = "gpio10";
141351123e6SKrzysztof Kozlowski                function = "wsa_swr_clk";
142351123e6SKrzysztof Kozlowski                drive-strength = <2>;
143351123e6SKrzysztof Kozlowski                slew-rate = <1>;
144351123e6SKrzysztof Kozlowski                bias-disable;
145351123e6SKrzysztof Kozlowski            };
146351123e6SKrzysztof Kozlowski
147351123e6SKrzysztof Kozlowski            data-pins {
148351123e6SKrzysztof Kozlowski                pins = "gpio11";
149351123e6SKrzysztof Kozlowski                function = "wsa_swr_data";
150351123e6SKrzysztof Kozlowski                drive-strength = <2>;
151351123e6SKrzysztof Kozlowski                slew-rate = <1>;
152351123e6SKrzysztof Kozlowski            };
153351123e6SKrzysztof Kozlowski        };
154351123e6SKrzysztof Kozlowski
155351123e6SKrzysztof Kozlowski        tx-swr-sleep-clk-state {
156351123e6SKrzysztof Kozlowski            pins = "gpio0";
157351123e6SKrzysztof Kozlowski            function = "swr_tx_clk";
158351123e6SKrzysztof Kozlowski            drive-strength = <2>;
159351123e6SKrzysztof Kozlowski            bias-pull-down;
160351123e6SKrzysztof Kozlowski        };
161e343cff7SSrinivasa Rao Mandadapu    };
162