xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,sdm660-lpass-lpi-pinctrl.yaml (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1*350027a3SNickolay Goppen# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*350027a3SNickolay Goppen%YAML 1.2
3*350027a3SNickolay Goppen---
4*350027a3SNickolay Goppen$id: http://devicetree.org/schemas/pinctrl/qcom,sdm660-lpass-lpi-pinctrl.yaml#
5*350027a3SNickolay Goppen$schema: http://devicetree.org/meta-schemas/core.yaml#
6*350027a3SNickolay Goppen
7*350027a3SNickolay Goppentitle: Qualcomm SDM660 SoC LPASS LPI TLMM
8*350027a3SNickolay Goppen
9*350027a3SNickolay Goppenmaintainers:
10*350027a3SNickolay Goppen  - Nickolay Goppen <setotau@mainlining.org>
11*350027a3SNickolay Goppen
12*350027a3SNickolay Goppendescription:
13*350027a3SNickolay Goppen  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
14*350027a3SNickolay Goppen  (LPASS) Low Power Island (LPI) of Qualcomm SDM660 SoC.
15*350027a3SNickolay Goppen
16*350027a3SNickolay Goppenproperties:
17*350027a3SNickolay Goppen  compatible:
18*350027a3SNickolay Goppen    const: qcom,sdm660-lpass-lpi-pinctrl
19*350027a3SNickolay Goppen
20*350027a3SNickolay Goppen  reg:
21*350027a3SNickolay Goppen    items:
22*350027a3SNickolay Goppen      - description: LPASS LPI TLMM Control and Status registers
23*350027a3SNickolay Goppen
24*350027a3SNickolay GoppenpatternProperties:
25*350027a3SNickolay Goppen  "-state$":
26*350027a3SNickolay Goppen    oneOf:
27*350027a3SNickolay Goppen      - $ref: "#/$defs/qcom-sdm660-lpass-state"
28*350027a3SNickolay Goppen      - patternProperties:
29*350027a3SNickolay Goppen          "-pins$":
30*350027a3SNickolay Goppen            $ref: "#/$defs/qcom-sdm660-lpass-state"
31*350027a3SNickolay Goppen        additionalProperties: false
32*350027a3SNickolay Goppen
33*350027a3SNickolay Goppen$defs:
34*350027a3SNickolay Goppen  qcom-sdm660-lpass-state:
35*350027a3SNickolay Goppen    type: object
36*350027a3SNickolay Goppen    description:
37*350027a3SNickolay Goppen      Pinctrl node's client devices use subnodes for desired pin configuration.
38*350027a3SNickolay Goppen      Client device subnodes use below standard properties.
39*350027a3SNickolay Goppen    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
40*350027a3SNickolay Goppen    unevaluatedProperties: false
41*350027a3SNickolay Goppen
42*350027a3SNickolay Goppen    properties:
43*350027a3SNickolay Goppen      pins:
44*350027a3SNickolay Goppen        description:
45*350027a3SNickolay Goppen          List of gpio pins affected by the properties specified in this
46*350027a3SNickolay Goppen          subnode.
47*350027a3SNickolay Goppen        items:
48*350027a3SNickolay Goppen          pattern: "^gpio([0-9]|[1-2][0-9]|3[0-1])$"
49*350027a3SNickolay Goppen
50*350027a3SNickolay Goppen      function:
51*350027a3SNickolay Goppen        enum: [ gpio, comp_rx, dmic1_clk, dmic1_data, dmic2_clk, dmic2_data,
52*350027a3SNickolay Goppen                mclk0, pdm_tx, pdm_clk, pdm_rx, pdm_sync ]
53*350027a3SNickolay Goppen        description:
54*350027a3SNickolay Goppen          Specify the alternative function to be configured for the specified
55*350027a3SNickolay Goppen          pins.
56*350027a3SNickolay Goppen
57*350027a3SNickolay GoppenallOf:
58*350027a3SNickolay Goppen  - $ref: qcom,lpass-lpi-common.yaml#
59*350027a3SNickolay Goppen
60*350027a3SNickolay Goppenrequired:
61*350027a3SNickolay Goppen  - compatible
62*350027a3SNickolay Goppen  - reg
63*350027a3SNickolay Goppen
64*350027a3SNickolay GoppenunevaluatedProperties: false
65*350027a3SNickolay Goppen
66*350027a3SNickolay Goppenexamples:
67*350027a3SNickolay Goppen  - |
68*350027a3SNickolay Goppen    lpi_tlmm: pinctrl@15070000 {
69*350027a3SNickolay Goppen        compatible = "qcom,sdm660-lpass-lpi-pinctrl";
70*350027a3SNickolay Goppen        reg = <0x15070000 0x20000>;
71*350027a3SNickolay Goppen        gpio-controller;
72*350027a3SNickolay Goppen        #gpio-cells = <2>;
73*350027a3SNickolay Goppen        gpio-ranges = <&lpi_tlmm 0 0 32>;
74*350027a3SNickolay Goppen
75*350027a3SNickolay Goppen        cdc_pdm_default: cdc-pdm-default-state {
76*350027a3SNickolay Goppen            clk-pins {
77*350027a3SNickolay Goppen                pins = "gpio18";
78*350027a3SNickolay Goppen                function = "pdm_clk";
79*350027a3SNickolay Goppen                drive-strength = <8>;
80*350027a3SNickolay Goppen                output-high;
81*350027a3SNickolay Goppen            };
82*350027a3SNickolay Goppen
83*350027a3SNickolay Goppen            sync-pins{
84*350027a3SNickolay Goppen                pins = "gpio19";
85*350027a3SNickolay Goppen                function = "pdm_sync";
86*350027a3SNickolay Goppen                drive-strength = <4>;
87*350027a3SNickolay Goppen                output-high;
88*350027a3SNickolay Goppen            };
89*350027a3SNickolay Goppen
90*350027a3SNickolay Goppen            tx-pins {
91*350027a3SNickolay Goppen                pins = "gpio20";
92*350027a3SNickolay Goppen                function = "pdm_tx";
93*350027a3SNickolay Goppen                drive-strength = <8>;
94*350027a3SNickolay Goppen            };
95*350027a3SNickolay Goppen
96*350027a3SNickolay Goppen            rx-pins {
97*350027a3SNickolay Goppen                pins = "gpio21", "gpio23", "gpio25";
98*350027a3SNickolay Goppen                function = "pdm_rx";
99*350027a3SNickolay Goppen                drive-strength = <4>;
100*350027a3SNickolay Goppen                output-high;
101*350027a3SNickolay Goppen            };
102*350027a3SNickolay Goppen        };
103*350027a3SNickolay Goppen
104*350027a3SNickolay Goppen        cdc_comp_default: cdc-comp-default-state {
105*350027a3SNickolay Goppen            pins = "gpio22", "gpio24";
106*350027a3SNickolay Goppen            function = "comp_rx";
107*350027a3SNickolay Goppen            drive-strength = <8>;
108*350027a3SNickolay Goppen        };
109*350027a3SNickolay Goppen    };
110