xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2d5b0e70fSEmmanuel Vadot%YAML 1.2
3d5b0e70fSEmmanuel Vadot---
4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml#
5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6d5b0e70fSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Qualcomm SC7280 SoC LPASS LPI TLMM
8d5b0e70fSEmmanuel Vadot
9d5b0e70fSEmmanuel Vadotmaintainers:
10d5b0e70fSEmmanuel Vadot  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11d5b0e70fSEmmanuel Vadot
128bab661aSEmmanuel Vadotdescription:
138bab661aSEmmanuel Vadot  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
148bab661aSEmmanuel Vadot  (LPASS) Low Power Island (LPI) of Qualcomm SC7280 SoC.
15d5b0e70fSEmmanuel Vadot
16d5b0e70fSEmmanuel Vadotproperties:
17d5b0e70fSEmmanuel Vadot  compatible:
18d5b0e70fSEmmanuel Vadot    const: qcom,sc7280-lpass-lpi-pinctrl
19d5b0e70fSEmmanuel Vadot
20d5b0e70fSEmmanuel Vadot  reg:
21d5b0e70fSEmmanuel Vadot    maxItems: 2
22d5b0e70fSEmmanuel Vadot
23d5b0e70fSEmmanuel VadotpatternProperties:
248bab661aSEmmanuel Vadot  "-state$":
258bab661aSEmmanuel Vadot    oneOf:
268bab661aSEmmanuel Vadot      - $ref: "#/$defs/qcom-sc7280-lpass-state"
278bab661aSEmmanuel Vadot      - patternProperties:
288bab661aSEmmanuel Vadot          "-pins$":
298bab661aSEmmanuel Vadot            $ref: "#/$defs/qcom-sc7280-lpass-state"
308bab661aSEmmanuel Vadot        additionalProperties: false
318bab661aSEmmanuel Vadot
328bab661aSEmmanuel Vadot$defs:
338bab661aSEmmanuel Vadot  qcom-sc7280-lpass-state:
34d5b0e70fSEmmanuel Vadot    type: object
35d5b0e70fSEmmanuel Vadot    description:
36d5b0e70fSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
37d5b0e70fSEmmanuel Vadot      Client device subnodes use below standard properties.
38*8d13bc63SEmmanuel Vadot    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
39*8d13bc63SEmmanuel Vadot    unevaluatedProperties: false
40d5b0e70fSEmmanuel Vadot
41d5b0e70fSEmmanuel Vadot    properties:
42d5b0e70fSEmmanuel Vadot      pins:
43d5b0e70fSEmmanuel Vadot        description:
44d5b0e70fSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
45d5b0e70fSEmmanuel Vadot          subnode.
46d5b0e70fSEmmanuel Vadot        items:
47d5b0e70fSEmmanuel Vadot          oneOf:
48cb7aa33aSEmmanuel Vadot            - pattern: "^gpio([0-9]|1[0-4])$"
49d5b0e70fSEmmanuel Vadot        minItems: 1
50d5b0e70fSEmmanuel Vadot        maxItems: 15
51d5b0e70fSEmmanuel Vadot
52d5b0e70fSEmmanuel Vadot      function:
53d5b0e70fSEmmanuel Vadot        enum: [ gpio, swr_tx_clk, qua_mi2s_sclk, swr_tx_data, qua_mi2s_ws,
54d5b0e70fSEmmanuel Vadot                qua_mi2s_data, swr_rx_clk, swr_rx_data, dmic1_clk, i2s1_clk,
55d5b0e70fSEmmanuel Vadot                dmic1_data, i2s1_ws, dmic2_clk, dmic2_data, i2s1_data,
56d5b0e70fSEmmanuel Vadot                i2s2_clk, wsa_swr_clk, i2s2_ws, wsa_swr_data, dmic3_clk,
57d5b0e70fSEmmanuel Vadot                dmic3_data, i2s2_data ]
58d5b0e70fSEmmanuel Vadot        description:
59d5b0e70fSEmmanuel Vadot          Specify the alternative function to be configured for the specified
60d5b0e70fSEmmanuel Vadot          pins.
61d5b0e70fSEmmanuel Vadot
62d5b0e70fSEmmanuel Vadotrequired:
63d5b0e70fSEmmanuel Vadot  - compatible
64d5b0e70fSEmmanuel Vadot  - reg
65d5b0e70fSEmmanuel Vadot
66*8d13bc63SEmmanuel VadotallOf:
67*8d13bc63SEmmanuel Vadot  - $ref: qcom,lpass-lpi-common.yaml#
68*8d13bc63SEmmanuel Vadot
69*8d13bc63SEmmanuel VadotunevaluatedProperties: false
70d5b0e70fSEmmanuel Vadot
71d5b0e70fSEmmanuel Vadotexamples:
72d5b0e70fSEmmanuel Vadot  - |
73d5b0e70fSEmmanuel Vadot    lpass_tlmm: pinctrl@33c0000 {
74d5b0e70fSEmmanuel Vadot        compatible = "qcom,sc7280-lpass-lpi-pinctrl";
75d5b0e70fSEmmanuel Vadot        reg = <0x33c0000 0x20000>,
76d5b0e70fSEmmanuel Vadot              <0x3550000 0x10000>;
77d5b0e70fSEmmanuel Vadot        gpio-controller;
78d5b0e70fSEmmanuel Vadot        #gpio-cells = <2>;
79d5b0e70fSEmmanuel Vadot        gpio-ranges = <&lpass_tlmm 0 0 15>;
808bab661aSEmmanuel Vadot
818bab661aSEmmanuel Vadot        dmic01-state {
828bab661aSEmmanuel Vadot            dmic01-clk-pins {
838bab661aSEmmanuel Vadot                pins = "gpio6";
848bab661aSEmmanuel Vadot                function = "dmic1_clk";
858bab661aSEmmanuel Vadot            };
868bab661aSEmmanuel Vadot
878bab661aSEmmanuel Vadot            dmic01-clk-sleep-pins {
888bab661aSEmmanuel Vadot                pins = "gpio6";
898bab661aSEmmanuel Vadot                function = "dmic1_clk";
908bab661aSEmmanuel Vadot            };
918bab661aSEmmanuel Vadot        };
928bab661aSEmmanuel Vadot
938bab661aSEmmanuel Vadot        tx-swr-data-sleep-state {
948bab661aSEmmanuel Vadot            pins = "gpio1", "gpio2", "gpio14";
958bab661aSEmmanuel Vadot            function = "swr_tx_data";
968bab661aSEmmanuel Vadot        };
97d5b0e70fSEmmanuel Vadot    };
98