xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
14faa4e73SSrinivas Kandagatla# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
24faa4e73SSrinivas Kandagatla%YAML 1.2
34faa4e73SSrinivas Kandagatla---
44faa4e73SSrinivas Kandagatla$id: http://devicetree.org/schemas/pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml#
54faa4e73SSrinivas Kandagatla$schema: http://devicetree.org/meta-schemas/core.yaml#
64faa4e73SSrinivas Kandagatla
7fc371f60SKrzysztof Kozlowskititle: Qualcomm SM8450 SoC LPASS LPI TLMM
84faa4e73SSrinivas Kandagatla
94faa4e73SSrinivas Kandagatlamaintainers:
104faa4e73SSrinivas Kandagatla  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
114faa4e73SSrinivas Kandagatla
12fc371f60SKrzysztof Kozlowskidescription:
13fc371f60SKrzysztof Kozlowski  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
14fc371f60SKrzysztof Kozlowski  (LPASS) Low Power Island (LPI) of Qualcomm SM8450 SoC.
154faa4e73SSrinivas Kandagatla
164faa4e73SSrinivas Kandagatlaproperties:
174faa4e73SSrinivas Kandagatla  compatible:
184faa4e73SSrinivas Kandagatla    const: qcom,sm8450-lpass-lpi-pinctrl
194faa4e73SSrinivas Kandagatla
204faa4e73SSrinivas Kandagatla  reg:
214faa4e73SSrinivas Kandagatla    items:
224faa4e73SSrinivas Kandagatla      - description: LPASS LPI TLMM Control and Status registers
23*3abe84eaSKrzysztof Kozlowski      - description: LPASS LPI MCC registers
244faa4e73SSrinivas Kandagatla
254faa4e73SSrinivas Kandagatla  clocks:
264faa4e73SSrinivas Kandagatla    items:
274faa4e73SSrinivas Kandagatla      - description: LPASS Core voting clock
284faa4e73SSrinivas Kandagatla      - description: LPASS Audio voting clock
294faa4e73SSrinivas Kandagatla
304faa4e73SSrinivas Kandagatla  clock-names:
314faa4e73SSrinivas Kandagatla    items:
324faa4e73SSrinivas Kandagatla      - const: core
334faa4e73SSrinivas Kandagatla      - const: audio
344faa4e73SSrinivas Kandagatla
354faa4e73SSrinivas Kandagatla  gpio-controller: true
364faa4e73SSrinivas Kandagatla
37fc371f60SKrzysztof Kozlowski  "#gpio-cells":
384faa4e73SSrinivas Kandagatla    description: Specifying the pin number and flags, as defined in
394faa4e73SSrinivas Kandagatla      include/dt-bindings/gpio/gpio.h
404faa4e73SSrinivas Kandagatla    const: 2
414faa4e73SSrinivas Kandagatla
424faa4e73SSrinivas Kandagatla  gpio-ranges:
434faa4e73SSrinivas Kandagatla    maxItems: 1
444faa4e73SSrinivas Kandagatla
454faa4e73SSrinivas KandagatlapatternProperties:
46a849cbd1SKrzysztof Kozlowski  "-state$":
47a849cbd1SKrzysztof Kozlowski    oneOf:
48a849cbd1SKrzysztof Kozlowski      - $ref: "#/$defs/qcom-sm8450-lpass-state"
49a849cbd1SKrzysztof Kozlowski      - patternProperties:
50a849cbd1SKrzysztof Kozlowski          "-pins$":
51a849cbd1SKrzysztof Kozlowski            $ref: "#/$defs/qcom-sm8450-lpass-state"
52a849cbd1SKrzysztof Kozlowski        additionalProperties: false
53a849cbd1SKrzysztof Kozlowski
54a849cbd1SKrzysztof Kozlowski$defs:
55a849cbd1SKrzysztof Kozlowski  qcom-sm8450-lpass-state:
564faa4e73SSrinivas Kandagatla    type: object
574faa4e73SSrinivas Kandagatla    description:
584faa4e73SSrinivas Kandagatla      Pinctrl node's client devices use subnodes for desired pin configuration.
594faa4e73SSrinivas Kandagatla      Client device subnodes use below standard properties.
604faa4e73SSrinivas Kandagatla    $ref: /schemas/pinctrl/pincfg-node.yaml
614faa4e73SSrinivas Kandagatla
624faa4e73SSrinivas Kandagatla    properties:
634faa4e73SSrinivas Kandagatla      pins:
644faa4e73SSrinivas Kandagatla        description:
654faa4e73SSrinivas Kandagatla          List of gpio pins affected by the properties specified in this
664faa4e73SSrinivas Kandagatla          subnode.
674faa4e73SSrinivas Kandagatla        items:
68315dffb8SKrzysztof Kozlowski          pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
694faa4e73SSrinivas Kandagatla
704faa4e73SSrinivas Kandagatla      function:
714faa4e73SSrinivas Kandagatla        enum: [ swr_tx_clk, swr_tx_data, swr_rx_clk, swr_rx_data,
724faa4e73SSrinivas Kandagatla                dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic4_clk,
734faa4e73SSrinivas Kandagatla                dmic4_data, i2s2_clk, i2s2_ws, dmic3_clk, dmic3_data,
744faa4e73SSrinivas Kandagatla                qua_mi2s_sclk, qua_mi2s_ws, qua_mi2s_data, i2s1_clk, i2s1_ws,
754faa4e73SSrinivas Kandagatla                i2s1_data, wsa_swr_clk, wsa_swr_data, wsa2_swr_clk,
764faa4e73SSrinivas Kandagatla                wsa2_swr_data, i2s2_data, i2s4_ws, i2s4_clk, i2s4_data,
774faa4e73SSrinivas Kandagatla                slimbus_clk, i2s3_clk, i2s3_ws, i2s3_data, slimbus_data,
784faa4e73SSrinivas Kandagatla                ext_mclk1_c, ext_mclk1_b, ext_mclk1_a, ext_mclk1_d,
794faa4e73SSrinivas Kandagatla                ext_mclk1_e ]
804faa4e73SSrinivas Kandagatla        description:
814faa4e73SSrinivas Kandagatla          Specify the alternative function to be configured for the specified
824faa4e73SSrinivas Kandagatla          pins.
834faa4e73SSrinivas Kandagatla
844faa4e73SSrinivas Kandagatla      drive-strength:
854faa4e73SSrinivas Kandagatla        enum: [2, 4, 6, 8, 10, 12, 14, 16]
864faa4e73SSrinivas Kandagatla        default: 2
874faa4e73SSrinivas Kandagatla        description:
884faa4e73SSrinivas Kandagatla          Selects the drive strength for the specified pins, in mA.
894faa4e73SSrinivas Kandagatla
904faa4e73SSrinivas Kandagatla      slew-rate:
914faa4e73SSrinivas Kandagatla        enum: [0, 1, 2, 3]
924faa4e73SSrinivas Kandagatla        default: 0
934faa4e73SSrinivas Kandagatla        description: |
944faa4e73SSrinivas Kandagatla          0: No adjustments
954faa4e73SSrinivas Kandagatla          1: Higher Slew rate (faster edges)
964faa4e73SSrinivas Kandagatla          2: Lower Slew rate (slower edges)
974faa4e73SSrinivas Kandagatla          3: Reserved (No adjustments)
984faa4e73SSrinivas Kandagatla
9969755066SKrzysztof Kozlowski      bias-bus-hold: true
1004faa4e73SSrinivas Kandagatla      bias-pull-down: true
1014faa4e73SSrinivas Kandagatla      bias-pull-up: true
1024faa4e73SSrinivas Kandagatla      bias-disable: true
10369755066SKrzysztof Kozlowski      input-enable: true
1044faa4e73SSrinivas Kandagatla      output-high: true
1054faa4e73SSrinivas Kandagatla      output-low: true
1064faa4e73SSrinivas Kandagatla
1074faa4e73SSrinivas Kandagatla    required:
1084faa4e73SSrinivas Kandagatla      - pins
1094faa4e73SSrinivas Kandagatla      - function
1104faa4e73SSrinivas Kandagatla
1114faa4e73SSrinivas Kandagatla    additionalProperties: false
1124faa4e73SSrinivas Kandagatla
1134faa4e73SSrinivas KandagatlaallOf:
1144faa4e73SSrinivas Kandagatla  - $ref: pinctrl.yaml#
1154faa4e73SSrinivas Kandagatla
1164faa4e73SSrinivas Kandagatlarequired:
1174faa4e73SSrinivas Kandagatla  - compatible
1184faa4e73SSrinivas Kandagatla  - reg
1194faa4e73SSrinivas Kandagatla  - clocks
1204faa4e73SSrinivas Kandagatla  - clock-names
1214faa4e73SSrinivas Kandagatla  - gpio-controller
122fc371f60SKrzysztof Kozlowski  - "#gpio-cells"
1234faa4e73SSrinivas Kandagatla  - gpio-ranges
1244faa4e73SSrinivas Kandagatla
1254faa4e73SSrinivas KandagatlaadditionalProperties: false
1264faa4e73SSrinivas Kandagatla
1274faa4e73SSrinivas Kandagatlaexamples:
1284faa4e73SSrinivas Kandagatla  - |
1294faa4e73SSrinivas Kandagatla    #include <dt-bindings/sound/qcom,q6afe.h>
1304faa4e73SSrinivas Kandagatla    pinctrl@3440000 {
1314faa4e73SSrinivas Kandagatla        compatible = "qcom,sm8450-lpass-lpi-pinctrl";
1324faa4e73SSrinivas Kandagatla        reg = <0x3440000 0x20000>,
1334faa4e73SSrinivas Kandagatla              <0x34d0000 0x10000>;
1344faa4e73SSrinivas Kandagatla        clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
1354faa4e73SSrinivas Kandagatla                 <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
1364faa4e73SSrinivas Kandagatla        clock-names = "core", "audio";
1374faa4e73SSrinivas Kandagatla        gpio-controller;
1384faa4e73SSrinivas Kandagatla        #gpio-cells = <2>;
1394faa4e73SSrinivas Kandagatla        gpio-ranges = <&lpi_tlmm 0 0 23>;
140a849cbd1SKrzysztof Kozlowski
141a849cbd1SKrzysztof Kozlowski        wsa-swr-active-state {
142a849cbd1SKrzysztof Kozlowski            clk-pins {
143a849cbd1SKrzysztof Kozlowski                pins = "gpio10";
144a849cbd1SKrzysztof Kozlowski                function = "wsa_swr_clk";
145a849cbd1SKrzysztof Kozlowski                drive-strength = <2>;
146a849cbd1SKrzysztof Kozlowski                slew-rate = <1>;
147a849cbd1SKrzysztof Kozlowski                bias-disable;
148a849cbd1SKrzysztof Kozlowski            };
149a849cbd1SKrzysztof Kozlowski
150a849cbd1SKrzysztof Kozlowski            data-pins {
151a849cbd1SKrzysztof Kozlowski                pins = "gpio11";
152a849cbd1SKrzysztof Kozlowski                function = "wsa_swr_data";
153a849cbd1SKrzysztof Kozlowski                drive-strength = <2>;
154a849cbd1SKrzysztof Kozlowski                slew-rate = <1>;
155a849cbd1SKrzysztof Kozlowski            };
156a849cbd1SKrzysztof Kozlowski        };
157a849cbd1SKrzysztof Kozlowski
158a849cbd1SKrzysztof Kozlowski        tx-swr-sleep-clk-state {
159a849cbd1SKrzysztof Kozlowski            pins = "gpio0";
160a849cbd1SKrzysztof Kozlowski            function = "swr_tx_clk";
161a849cbd1SKrzysztof Kozlowski            drive-strength = <2>;
162a849cbd1SKrzysztof Kozlowski            bias-pull-down;
163a849cbd1SKrzysztof Kozlowski        };
1644faa4e73SSrinivas Kandagatla    };
165