xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,sm8550-lpass-lpi-pinctrl.yaml (revision 253bad7f0436284ee0413b1c615a1d4be96893de)
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:
19*253bad7fSKrzysztof Kozlowski    oneOf:
20*253bad7fSKrzysztof Kozlowski      - const: qcom,sm8550-lpass-lpi-pinctrl
21*253bad7fSKrzysztof Kozlowski      - items:
22*253bad7fSKrzysztof Kozlowski          - const: qcom,x1e80100-lpass-lpi-pinctrl
23*253bad7fSKrzysztof 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 Kozlowski  gpio-controller: true
41268e97ccSKrzysztof Kozlowski
42268e97ccSKrzysztof Kozlowski  "#gpio-cells":
43268e97ccSKrzysztof Kozlowski    description: Specifying the pin number and flags, as defined in
44268e97ccSKrzysztof Kozlowski      include/dt-bindings/gpio/gpio.h
45268e97ccSKrzysztof Kozlowski    const: 2
46268e97ccSKrzysztof Kozlowski
47268e97ccSKrzysztof Kozlowski  gpio-ranges:
48268e97ccSKrzysztof Kozlowski    maxItems: 1
49268e97ccSKrzysztof Kozlowski
50268e97ccSKrzysztof KozlowskipatternProperties:
51268e97ccSKrzysztof Kozlowski  "-state$":
52268e97ccSKrzysztof Kozlowski    oneOf:
53268e97ccSKrzysztof Kozlowski      - $ref: "#/$defs/qcom-sm8550-lpass-state"
54268e97ccSKrzysztof Kozlowski      - patternProperties:
55268e97ccSKrzysztof Kozlowski          "-pins$":
56268e97ccSKrzysztof Kozlowski            $ref: "#/$defs/qcom-sm8550-lpass-state"
57268e97ccSKrzysztof Kozlowski        additionalProperties: false
58268e97ccSKrzysztof Kozlowski
59268e97ccSKrzysztof Kozlowski$defs:
60268e97ccSKrzysztof Kozlowski  qcom-sm8550-lpass-state:
61268e97ccSKrzysztof Kozlowski    type: object
62268e97ccSKrzysztof Kozlowski    description:
63268e97ccSKrzysztof Kozlowski      Pinctrl node's client devices use subnodes for desired pin configuration.
64268e97ccSKrzysztof Kozlowski      Client device subnodes use below standard properties.
65268e97ccSKrzysztof Kozlowski    $ref: /schemas/pinctrl/pincfg-node.yaml
66268e97ccSKrzysztof Kozlowski
67268e97ccSKrzysztof Kozlowski    properties:
68268e97ccSKrzysztof Kozlowski      pins:
69268e97ccSKrzysztof Kozlowski        description:
70268e97ccSKrzysztof Kozlowski          List of gpio pins affected by the properties specified in this
71268e97ccSKrzysztof Kozlowski          subnode.
72268e97ccSKrzysztof Kozlowski        items:
73268e97ccSKrzysztof Kozlowski          pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
74268e97ccSKrzysztof Kozlowski
75268e97ccSKrzysztof Kozlowski      function:
76268e97ccSKrzysztof Kozlowski        enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk,
77268e97ccSKrzysztof Kozlowski                dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b,
78268e97ccSKrzysztof Kozlowski                ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk,
79268e97ccSKrzysztof Kozlowski                i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk,
80268e97ccSKrzysztof Kozlowski                i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, i2s4_clk,
81268e97ccSKrzysztof Kozlowski                i2s4_data, i2s4_ws, slimbus_clk, slimbus_data, swr_rx_clk,
82268e97ccSKrzysztof Kozlowski                swr_rx_data, swr_tx_clk, swr_tx_data, wsa_swr_clk,
83268e97ccSKrzysztof Kozlowski                wsa_swr_data, wsa2_swr_clk, wsa2_swr_data ]
84268e97ccSKrzysztof Kozlowski        description:
85268e97ccSKrzysztof Kozlowski          Specify the alternative function to be configured for the specified
86268e97ccSKrzysztof Kozlowski          pins.
87268e97ccSKrzysztof Kozlowski
88268e97ccSKrzysztof Kozlowski      drive-strength:
89268e97ccSKrzysztof Kozlowski        enum: [2, 4, 6, 8, 10, 12, 14, 16]
90268e97ccSKrzysztof Kozlowski        default: 2
91268e97ccSKrzysztof Kozlowski        description:
92268e97ccSKrzysztof Kozlowski          Selects the drive strength for the specified pins, in mA.
93268e97ccSKrzysztof Kozlowski
94268e97ccSKrzysztof Kozlowski      slew-rate:
95268e97ccSKrzysztof Kozlowski        enum: [0, 1, 2, 3]
96268e97ccSKrzysztof Kozlowski        default: 0
97268e97ccSKrzysztof Kozlowski        description: |
98268e97ccSKrzysztof Kozlowski          0: No adjustments
99268e97ccSKrzysztof Kozlowski          1: Higher Slew rate (faster edges)
100268e97ccSKrzysztof Kozlowski          2: Lower Slew rate (slower edges)
101268e97ccSKrzysztof Kozlowski          3: Reserved (No adjustments)
102268e97ccSKrzysztof Kozlowski
103e4056e38SKrzysztof Kozlowski      bias-bus-hold: true
104268e97ccSKrzysztof Kozlowski      bias-pull-down: true
105268e97ccSKrzysztof Kozlowski      bias-pull-up: true
106268e97ccSKrzysztof Kozlowski      bias-disable: true
107e4056e38SKrzysztof Kozlowski      input-enable: true
108268e97ccSKrzysztof Kozlowski      output-high: true
109268e97ccSKrzysztof Kozlowski      output-low: true
110268e97ccSKrzysztof Kozlowski
111268e97ccSKrzysztof Kozlowski    required:
112268e97ccSKrzysztof Kozlowski      - pins
113268e97ccSKrzysztof Kozlowski      - function
114268e97ccSKrzysztof Kozlowski
115268e97ccSKrzysztof Kozlowski    additionalProperties: false
116268e97ccSKrzysztof Kozlowski
117268e97ccSKrzysztof KozlowskiallOf:
118268e97ccSKrzysztof Kozlowski  - $ref: pinctrl.yaml#
119268e97ccSKrzysztof Kozlowski
120268e97ccSKrzysztof Kozlowskirequired:
121268e97ccSKrzysztof Kozlowski  - compatible
122268e97ccSKrzysztof Kozlowski  - reg
123268e97ccSKrzysztof Kozlowski  - clocks
124268e97ccSKrzysztof Kozlowski  - clock-names
125268e97ccSKrzysztof Kozlowski  - gpio-controller
126268e97ccSKrzysztof Kozlowski  - "#gpio-cells"
127268e97ccSKrzysztof Kozlowski  - gpio-ranges
128268e97ccSKrzysztof Kozlowski
129268e97ccSKrzysztof KozlowskiadditionalProperties: false
130268e97ccSKrzysztof Kozlowski
131268e97ccSKrzysztof Kozlowskiexamples:
132268e97ccSKrzysztof Kozlowski  - |
133268e97ccSKrzysztof Kozlowski    #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
134268e97ccSKrzysztof Kozlowski
135268e97ccSKrzysztof Kozlowski    lpass_tlmm: pinctrl@6e80000 {
136268e97ccSKrzysztof Kozlowski        compatible = "qcom,sm8550-lpass-lpi-pinctrl";
137268e97ccSKrzysztof Kozlowski        reg = <0x06e80000 0x20000>,
138268e97ccSKrzysztof Kozlowski              <0x0725a000 0x10000>;
139268e97ccSKrzysztof Kozlowski
140268e97ccSKrzysztof Kozlowski        clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
141268e97ccSKrzysztof Kozlowski                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
142268e97ccSKrzysztof Kozlowski        clock-names = "core", "audio";
143268e97ccSKrzysztof Kozlowski
144268e97ccSKrzysztof Kozlowski        gpio-controller;
145268e97ccSKrzysztof Kozlowski        #gpio-cells = <2>;
146268e97ccSKrzysztof Kozlowski        gpio-ranges = <&lpass_tlmm 0 0 23>;
147268e97ccSKrzysztof Kozlowski
148268e97ccSKrzysztof Kozlowski        tx-swr-sleep-clk-state {
149268e97ccSKrzysztof Kozlowski            pins = "gpio0";
150268e97ccSKrzysztof Kozlowski            function = "swr_tx_clk";
151268e97ccSKrzysztof Kozlowski            drive-strength = <2>;
152268e97ccSKrzysztof Kozlowski            bias-pull-down;
153268e97ccSKrzysztof Kozlowski        };
154268e97ccSKrzysztof Kozlowski    };
155