xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,sm8350-lpass-lpi-pinctrl.yaml (revision c900529f3d9161bfde5cca0754f83b4d3c3e0220)
1*2b4e7a87SKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*2b4e7a87SKrzysztof Kozlowski%YAML 1.2
3*2b4e7a87SKrzysztof Kozlowski---
4*2b4e7a87SKrzysztof Kozlowski$id: http://devicetree.org/schemas/pinctrl/qcom,sm8350-lpass-lpi-pinctrl.yaml#
5*2b4e7a87SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*2b4e7a87SKrzysztof Kozlowski
7*2b4e7a87SKrzysztof Kozlowskititle: Qualcomm SM8350 SoC LPASS LPI TLMM
8*2b4e7a87SKrzysztof Kozlowski
9*2b4e7a87SKrzysztof Kozlowskimaintainers:
10*2b4e7a87SKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
11*2b4e7a87SKrzysztof Kozlowski  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
12*2b4e7a87SKrzysztof Kozlowski
13*2b4e7a87SKrzysztof Kozlowskidescription:
14*2b4e7a87SKrzysztof Kozlowski  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
15*2b4e7a87SKrzysztof Kozlowski  (LPASS) Low Power Island (LPI) of Qualcomm SM8350 SoC.
16*2b4e7a87SKrzysztof Kozlowski
17*2b4e7a87SKrzysztof Kozlowskiproperties:
18*2b4e7a87SKrzysztof Kozlowski  compatible:
19*2b4e7a87SKrzysztof Kozlowski    const: qcom,sm8350-lpass-lpi-pinctrl
20*2b4e7a87SKrzysztof Kozlowski
21*2b4e7a87SKrzysztof Kozlowski  reg:
22*2b4e7a87SKrzysztof Kozlowski    items:
23*2b4e7a87SKrzysztof Kozlowski      - description: LPASS LPI TLMM Control and Status registers
24*2b4e7a87SKrzysztof Kozlowski      - description: LPASS LPI MCC registers
25*2b4e7a87SKrzysztof Kozlowski
26*2b4e7a87SKrzysztof Kozlowski  clocks:
27*2b4e7a87SKrzysztof Kozlowski    items:
28*2b4e7a87SKrzysztof Kozlowski      - description: LPASS Core voting clock
29*2b4e7a87SKrzysztof Kozlowski      - description: LPASS Audio voting clock
30*2b4e7a87SKrzysztof Kozlowski
31*2b4e7a87SKrzysztof Kozlowski  clock-names:
32*2b4e7a87SKrzysztof Kozlowski    items:
33*2b4e7a87SKrzysztof Kozlowski      - const: core
34*2b4e7a87SKrzysztof Kozlowski      - const: audio
35*2b4e7a87SKrzysztof Kozlowski
36*2b4e7a87SKrzysztof Kozlowski  gpio-controller: true
37*2b4e7a87SKrzysztof Kozlowski
38*2b4e7a87SKrzysztof Kozlowski  "#gpio-cells":
39*2b4e7a87SKrzysztof Kozlowski    description: Specifying the pin number and flags, as defined in
40*2b4e7a87SKrzysztof Kozlowski      include/dt-bindings/gpio/gpio.h
41*2b4e7a87SKrzysztof Kozlowski    const: 2
42*2b4e7a87SKrzysztof Kozlowski
43*2b4e7a87SKrzysztof Kozlowski  gpio-ranges:
44*2b4e7a87SKrzysztof Kozlowski    maxItems: 1
45*2b4e7a87SKrzysztof Kozlowski
46*2b4e7a87SKrzysztof KozlowskipatternProperties:
47*2b4e7a87SKrzysztof Kozlowski  "-state$":
48*2b4e7a87SKrzysztof Kozlowski    oneOf:
49*2b4e7a87SKrzysztof Kozlowski      - $ref: "#/$defs/qcom-sm8350-lpass-state"
50*2b4e7a87SKrzysztof Kozlowski      - patternProperties:
51*2b4e7a87SKrzysztof Kozlowski          "-pins$":
52*2b4e7a87SKrzysztof Kozlowski            $ref: "#/$defs/qcom-sm8350-lpass-state"
53*2b4e7a87SKrzysztof Kozlowski        additionalProperties: false
54*2b4e7a87SKrzysztof Kozlowski
55*2b4e7a87SKrzysztof Kozlowski$defs:
56*2b4e7a87SKrzysztof Kozlowski  qcom-sm8350-lpass-state:
57*2b4e7a87SKrzysztof Kozlowski    type: object
58*2b4e7a87SKrzysztof Kozlowski    description:
59*2b4e7a87SKrzysztof Kozlowski      Pinctrl node's client devices use subnodes for desired pin configuration.
60*2b4e7a87SKrzysztof Kozlowski      Client device subnodes use below standard properties.
61*2b4e7a87SKrzysztof Kozlowski    $ref: /schemas/pinctrl/pincfg-node.yaml
62*2b4e7a87SKrzysztof Kozlowski
63*2b4e7a87SKrzysztof Kozlowski    properties:
64*2b4e7a87SKrzysztof Kozlowski      pins:
65*2b4e7a87SKrzysztof Kozlowski        description:
66*2b4e7a87SKrzysztof Kozlowski          List of gpio pins affected by the properties specified in this
67*2b4e7a87SKrzysztof Kozlowski          subnode.
68*2b4e7a87SKrzysztof Kozlowski        items:
69*2b4e7a87SKrzysztof Kozlowski          pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
70*2b4e7a87SKrzysztof Kozlowski
71*2b4e7a87SKrzysztof Kozlowski      function:
72*2b4e7a87SKrzysztof Kozlowski        enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk,
73*2b4e7a87SKrzysztof Kozlowski                dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b,
74*2b4e7a87SKrzysztof Kozlowski                ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk,
75*2b4e7a87SKrzysztof Kozlowski                i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk,
76*2b4e7a87SKrzysztof Kozlowski                i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, i2s4_clk,
77*2b4e7a87SKrzysztof Kozlowski                i2s4_data, i2s4_ws, slimbus_clk, slimbus_data, swr_rx_clk,
78*2b4e7a87SKrzysztof Kozlowski                swr_rx_data, swr_tx_clk, swr_tx_data, wsa_swr_clk,
79*2b4e7a87SKrzysztof Kozlowski                wsa_swr_data, wsa2_swr_clk, wsa2_swr_data ]
80*2b4e7a87SKrzysztof Kozlowski        description:
81*2b4e7a87SKrzysztof Kozlowski          Specify the alternative function to be configured for the specified
82*2b4e7a87SKrzysztof Kozlowski          pins.
83*2b4e7a87SKrzysztof Kozlowski
84*2b4e7a87SKrzysztof Kozlowski      drive-strength:
85*2b4e7a87SKrzysztof Kozlowski        enum: [2, 4, 6, 8, 10, 12, 14, 16]
86*2b4e7a87SKrzysztof Kozlowski        default: 2
87*2b4e7a87SKrzysztof Kozlowski        description:
88*2b4e7a87SKrzysztof Kozlowski          Selects the drive strength for the specified pins, in mA.
89*2b4e7a87SKrzysztof Kozlowski
90*2b4e7a87SKrzysztof Kozlowski      slew-rate:
91*2b4e7a87SKrzysztof Kozlowski        enum: [0, 1, 2, 3]
92*2b4e7a87SKrzysztof Kozlowski        default: 0
93*2b4e7a87SKrzysztof Kozlowski        description: |
94*2b4e7a87SKrzysztof Kozlowski          0: No adjustments
95*2b4e7a87SKrzysztof Kozlowski          1: Higher Slew rate (faster edges)
96*2b4e7a87SKrzysztof Kozlowski          2: Lower Slew rate (slower edges)
97*2b4e7a87SKrzysztof Kozlowski          3: Reserved (No adjustments)
98*2b4e7a87SKrzysztof Kozlowski
99*2b4e7a87SKrzysztof Kozlowski      bias-bus-hold: true
100*2b4e7a87SKrzysztof Kozlowski      bias-pull-down: true
101*2b4e7a87SKrzysztof Kozlowski      bias-pull-up: true
102*2b4e7a87SKrzysztof Kozlowski      bias-disable: true
103*2b4e7a87SKrzysztof Kozlowski      input-enable: true
104*2b4e7a87SKrzysztof Kozlowski      output-high: true
105*2b4e7a87SKrzysztof Kozlowski      output-low: true
106*2b4e7a87SKrzysztof Kozlowski
107*2b4e7a87SKrzysztof Kozlowski    required:
108*2b4e7a87SKrzysztof Kozlowski      - pins
109*2b4e7a87SKrzysztof Kozlowski      - function
110*2b4e7a87SKrzysztof Kozlowski
111*2b4e7a87SKrzysztof Kozlowski    additionalProperties: false
112*2b4e7a87SKrzysztof Kozlowski
113*2b4e7a87SKrzysztof KozlowskiallOf:
114*2b4e7a87SKrzysztof Kozlowski  - $ref: pinctrl.yaml#
115*2b4e7a87SKrzysztof Kozlowski
116*2b4e7a87SKrzysztof Kozlowskirequired:
117*2b4e7a87SKrzysztof Kozlowski  - compatible
118*2b4e7a87SKrzysztof Kozlowski  - reg
119*2b4e7a87SKrzysztof Kozlowski  - clocks
120*2b4e7a87SKrzysztof Kozlowski  - clock-names
121*2b4e7a87SKrzysztof Kozlowski  - gpio-controller
122*2b4e7a87SKrzysztof Kozlowski  - "#gpio-cells"
123*2b4e7a87SKrzysztof Kozlowski  - gpio-ranges
124*2b4e7a87SKrzysztof Kozlowski
125*2b4e7a87SKrzysztof KozlowskiadditionalProperties: false
126*2b4e7a87SKrzysztof Kozlowski
127*2b4e7a87SKrzysztof Kozlowskiexamples:
128*2b4e7a87SKrzysztof Kozlowski  - |
129*2b4e7a87SKrzysztof Kozlowski    #include <dt-bindings/sound/qcom,q6afe.h>
130*2b4e7a87SKrzysztof Kozlowski
131*2b4e7a87SKrzysztof Kozlowski    lpass_tlmm: pinctrl@33c0000 {
132*2b4e7a87SKrzysztof Kozlowski        compatible = "qcom,sm8350-lpass-lpi-pinctrl";
133*2b4e7a87SKrzysztof Kozlowski        reg = <0x033c0000 0x20000>,
134*2b4e7a87SKrzysztof Kozlowski              <0x03550000 0x10000>;
135*2b4e7a87SKrzysztof Kozlowski
136*2b4e7a87SKrzysztof Kozlowski        clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
137*2b4e7a87SKrzysztof Kozlowski                 <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
138*2b4e7a87SKrzysztof Kozlowski        clock-names = "core", "audio";
139*2b4e7a87SKrzysztof Kozlowski
140*2b4e7a87SKrzysztof Kozlowski        gpio-controller;
141*2b4e7a87SKrzysztof Kozlowski        #gpio-cells = <2>;
142*2b4e7a87SKrzysztof Kozlowski        gpio-ranges = <&lpass_tlmm 0 0 15>;
143*2b4e7a87SKrzysztof Kozlowski    };
144