xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,sm6115-lpass-lpi-pinctrl.yaml (revision 743cbe6541da1c9e6ea4eb4b1ac29b2620639f83)
1*743cbe65SKonrad Dybcio# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*743cbe65SKonrad Dybcio%YAML 1.2
3*743cbe65SKonrad Dybcio---
4*743cbe65SKonrad Dybcio$id: http://devicetree.org/schemas/pinctrl/qcom,sm6115-lpass-lpi-pinctrl.yaml#
5*743cbe65SKonrad Dybcio$schema: http://devicetree.org/meta-schemas/core.yaml#
6*743cbe65SKonrad Dybcio
7*743cbe65SKonrad Dybciotitle: Qualcomm SM6115 SoC LPASS LPI TLMM
8*743cbe65SKonrad Dybcio
9*743cbe65SKonrad Dybciomaintainers:
10*743cbe65SKonrad Dybcio  - Konrad Dybcio <konradybcio@kernel.org>
11*743cbe65SKonrad Dybcio  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
12*743cbe65SKonrad Dybcio
13*743cbe65SKonrad Dybciodescription:
14*743cbe65SKonrad Dybcio  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
15*743cbe65SKonrad Dybcio  (LPASS) Low Power Island (LPI) of Qualcomm SM6115 SoC.
16*743cbe65SKonrad Dybcio
17*743cbe65SKonrad Dybcioproperties:
18*743cbe65SKonrad Dybcio  compatible:
19*743cbe65SKonrad Dybcio    const: qcom,sm6115-lpass-lpi-pinctrl
20*743cbe65SKonrad Dybcio
21*743cbe65SKonrad Dybcio  reg:
22*743cbe65SKonrad Dybcio    items:
23*743cbe65SKonrad Dybcio      - description: LPASS LPI TLMM Control and Status registers
24*743cbe65SKonrad Dybcio      - description: LPASS LPI MCC registers
25*743cbe65SKonrad Dybcio
26*743cbe65SKonrad Dybcio  clocks:
27*743cbe65SKonrad Dybcio    items:
28*743cbe65SKonrad Dybcio      - description: LPASS Audio voting clock
29*743cbe65SKonrad Dybcio
30*743cbe65SKonrad Dybcio  clock-names:
31*743cbe65SKonrad Dybcio    items:
32*743cbe65SKonrad Dybcio      - const: audio
33*743cbe65SKonrad Dybcio
34*743cbe65SKonrad Dybcio  gpio-controller: true
35*743cbe65SKonrad Dybcio
36*743cbe65SKonrad Dybcio  "#gpio-cells":
37*743cbe65SKonrad Dybcio    description: Specifying the pin number and flags, as defined in
38*743cbe65SKonrad Dybcio      include/dt-bindings/gpio/gpio.h
39*743cbe65SKonrad Dybcio    const: 2
40*743cbe65SKonrad Dybcio
41*743cbe65SKonrad Dybcio  gpio-ranges:
42*743cbe65SKonrad Dybcio    maxItems: 1
43*743cbe65SKonrad Dybcio
44*743cbe65SKonrad DybciopatternProperties:
45*743cbe65SKonrad Dybcio  "-state$":
46*743cbe65SKonrad Dybcio    oneOf:
47*743cbe65SKonrad Dybcio      - $ref: "#/$defs/qcom-sm6115-lpass-state"
48*743cbe65SKonrad Dybcio      - patternProperties:
49*743cbe65SKonrad Dybcio          "-pins$":
50*743cbe65SKonrad Dybcio            $ref: "#/$defs/qcom-sm6115-lpass-state"
51*743cbe65SKonrad Dybcio        additionalProperties: false
52*743cbe65SKonrad Dybcio
53*743cbe65SKonrad Dybcio$defs:
54*743cbe65SKonrad Dybcio  qcom-sm6115-lpass-state:
55*743cbe65SKonrad Dybcio    type: object
56*743cbe65SKonrad Dybcio    description:
57*743cbe65SKonrad Dybcio      Pinctrl node's client devices use subnodes for desired pin configuration.
58*743cbe65SKonrad Dybcio      Client device subnodes use below standard properties.
59*743cbe65SKonrad Dybcio    $ref: /schemas/pinctrl/pincfg-node.yaml
60*743cbe65SKonrad Dybcio
61*743cbe65SKonrad Dybcio    properties:
62*743cbe65SKonrad Dybcio      pins:
63*743cbe65SKonrad Dybcio        description:
64*743cbe65SKonrad Dybcio          List of gpio pins affected by the properties specified in this
65*743cbe65SKonrad Dybcio          subnode.
66*743cbe65SKonrad Dybcio        items:
67*743cbe65SKonrad Dybcio          pattern: "^gpio([0-9]|1[0-8])$"
68*743cbe65SKonrad Dybcio
69*743cbe65SKonrad Dybcio      function:
70*743cbe65SKonrad Dybcio        enum: [ dmic01_clk, dmic01_data, dmic23_clk, dmic23_data, gpio, i2s1_clk,
71*743cbe65SKonrad Dybcio                i2s1_data, i2s1_ws, i2s2_clk, i2s2_data, i2s2_ws, i2s3_clk,
72*743cbe65SKonrad Dybcio                i2s3_data, i2s3_ws, qua_mi2s_data, qua_mi2s_sclk, qua_mi2s_ws,
73*743cbe65SKonrad Dybcio                swr_rx_clk, swr_rx_data, swr_tx_clk, swr_tx_data, wsa_mclk ]
74*743cbe65SKonrad Dybcio        description:
75*743cbe65SKonrad Dybcio          Specify the alternative function to be configured for the specified
76*743cbe65SKonrad Dybcio          pins.
77*743cbe65SKonrad Dybcio
78*743cbe65SKonrad Dybcio      drive-strength:
79*743cbe65SKonrad Dybcio        enum: [2, 4, 6, 8, 10, 12, 14, 16]
80*743cbe65SKonrad Dybcio        default: 2
81*743cbe65SKonrad Dybcio        description:
82*743cbe65SKonrad Dybcio          Selects the drive strength for the specified pins, in mA.
83*743cbe65SKonrad Dybcio
84*743cbe65SKonrad Dybcio      slew-rate:
85*743cbe65SKonrad Dybcio        enum: [0, 1, 2, 3]
86*743cbe65SKonrad Dybcio        default: 0
87*743cbe65SKonrad Dybcio        description: |
88*743cbe65SKonrad Dybcio          0: No adjustments
89*743cbe65SKonrad Dybcio          1: Higher Slew rate (faster edges)
90*743cbe65SKonrad Dybcio          2: Lower Slew rate (slower edges)
91*743cbe65SKonrad Dybcio          3: Reserved (No adjustments)
92*743cbe65SKonrad Dybcio
93*743cbe65SKonrad Dybcio      bias-bus-hold: true
94*743cbe65SKonrad Dybcio      bias-pull-down: true
95*743cbe65SKonrad Dybcio      bias-pull-up: true
96*743cbe65SKonrad Dybcio      bias-disable: true
97*743cbe65SKonrad Dybcio      input-enable: true
98*743cbe65SKonrad Dybcio      output-high: true
99*743cbe65SKonrad Dybcio      output-low: true
100*743cbe65SKonrad Dybcio
101*743cbe65SKonrad Dybcio    required:
102*743cbe65SKonrad Dybcio      - pins
103*743cbe65SKonrad Dybcio      - function
104*743cbe65SKonrad Dybcio
105*743cbe65SKonrad Dybcio    additionalProperties: false
106*743cbe65SKonrad Dybcio
107*743cbe65SKonrad DybcioallOf:
108*743cbe65SKonrad Dybcio  - $ref: pinctrl.yaml#
109*743cbe65SKonrad Dybcio
110*743cbe65SKonrad Dybciorequired:
111*743cbe65SKonrad Dybcio  - compatible
112*743cbe65SKonrad Dybcio  - reg
113*743cbe65SKonrad Dybcio  - clocks
114*743cbe65SKonrad Dybcio  - clock-names
115*743cbe65SKonrad Dybcio  - gpio-controller
116*743cbe65SKonrad Dybcio  - "#gpio-cells"
117*743cbe65SKonrad Dybcio  - gpio-ranges
118*743cbe65SKonrad Dybcio
119*743cbe65SKonrad DybcioadditionalProperties: false
120*743cbe65SKonrad Dybcio
121*743cbe65SKonrad Dybcioexamples:
122*743cbe65SKonrad Dybcio  - |
123*743cbe65SKonrad Dybcio    #include <dt-bindings/sound/qcom,q6afe.h>
124*743cbe65SKonrad Dybcio
125*743cbe65SKonrad Dybcio    lpass_tlmm: pinctrl@a7c0000 {
126*743cbe65SKonrad Dybcio        compatible = "qcom,sm6115-lpass-lpi-pinctrl";
127*743cbe65SKonrad Dybcio        reg = <0x0a7c0000 0x20000>,
128*743cbe65SKonrad Dybcio              <0x0a950000 0x10000>;
129*743cbe65SKonrad Dybcio        clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
130*743cbe65SKonrad Dybcio        clock-names = "audio";
131*743cbe65SKonrad Dybcio
132*743cbe65SKonrad Dybcio        gpio-controller;
133*743cbe65SKonrad Dybcio        #gpio-cells = <2>;
134*743cbe65SKonrad Dybcio        gpio-ranges = <&lpass_tlmm 0 0 19>;
135*743cbe65SKonrad Dybcio    };
136