xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,sm4250-lpass-lpi-pinctrl.yaml (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*0e8011faSEmmanuel Vadot%YAML 1.2
3*0e8011faSEmmanuel Vadot---
4*0e8011faSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,sm4250-lpass-lpi-pinctrl.yaml#
5*0e8011faSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadottitle: Qualcomm SM4250 SoC LPASS LPI TLMM
8*0e8011faSEmmanuel Vadot
9*0e8011faSEmmanuel Vadotmaintainers:
10*0e8011faSEmmanuel Vadot  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
11*0e8011faSEmmanuel Vadot
12*0e8011faSEmmanuel Vadotdescription:
13*0e8011faSEmmanuel Vadot  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
14*0e8011faSEmmanuel Vadot  (LPASS) Low Power Island (LPI) of Qualcomm SM4250 SoC.
15*0e8011faSEmmanuel Vadot
16*0e8011faSEmmanuel Vadotproperties:
17*0e8011faSEmmanuel Vadot  compatible:
18*0e8011faSEmmanuel Vadot    const: qcom,sm4250-lpass-lpi-pinctrl
19*0e8011faSEmmanuel Vadot
20*0e8011faSEmmanuel Vadot  reg:
21*0e8011faSEmmanuel Vadot    items:
22*0e8011faSEmmanuel Vadot      - description: LPASS LPI TLMM Control and Status registers
23*0e8011faSEmmanuel Vadot      - description: LPASS LPI MCC registers
24*0e8011faSEmmanuel Vadot
25*0e8011faSEmmanuel Vadot  clocks:
26*0e8011faSEmmanuel Vadot    items:
27*0e8011faSEmmanuel Vadot      - description: LPASS Audio voting clock
28*0e8011faSEmmanuel Vadot
29*0e8011faSEmmanuel Vadot  clock-names:
30*0e8011faSEmmanuel Vadot    items:
31*0e8011faSEmmanuel Vadot      - const: audio
32*0e8011faSEmmanuel Vadot
33*0e8011faSEmmanuel VadotpatternProperties:
34*0e8011faSEmmanuel Vadot  "-state$":
35*0e8011faSEmmanuel Vadot    oneOf:
36*0e8011faSEmmanuel Vadot      - $ref: "#/$defs/qcom-sm4250-lpass-state"
37*0e8011faSEmmanuel Vadot      - patternProperties:
38*0e8011faSEmmanuel Vadot          "-pins$":
39*0e8011faSEmmanuel Vadot            $ref: "#/$defs/qcom-sm4250-lpass-state"
40*0e8011faSEmmanuel Vadot        additionalProperties: false
41*0e8011faSEmmanuel Vadot
42*0e8011faSEmmanuel Vadot$defs:
43*0e8011faSEmmanuel Vadot  qcom-sm4250-lpass-state:
44*0e8011faSEmmanuel Vadot    type: object
45*0e8011faSEmmanuel Vadot    description:
46*0e8011faSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
47*0e8011faSEmmanuel Vadot      Client device subnodes use below standard properties.
48*0e8011faSEmmanuel Vadot    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
49*0e8011faSEmmanuel Vadot    unevaluatedProperties: false
50*0e8011faSEmmanuel Vadot
51*0e8011faSEmmanuel Vadot    properties:
52*0e8011faSEmmanuel Vadot      pins:
53*0e8011faSEmmanuel Vadot        description:
54*0e8011faSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
55*0e8011faSEmmanuel Vadot          subnode.
56*0e8011faSEmmanuel Vadot        items:
57*0e8011faSEmmanuel Vadot          pattern: "^gpio([0-9]|1[0-9]|2[0-6])$"
58*0e8011faSEmmanuel Vadot
59*0e8011faSEmmanuel Vadot      function:
60*0e8011faSEmmanuel Vadot        enum: [ gpio, dmic01_clk, dmic01_data, dmic23_clk, dmic23_data,
61*0e8011faSEmmanuel Vadot                dmic4_clk, dmic4_data, ext_mclk0_a, ext_mclk0_b, ext_mclk1_a,
62*0e8011faSEmmanuel Vadot                ext_mclk1_b, ext_mclk1_c, i2s1_clk, i2s1_data, i2s1_ws,
63*0e8011faSEmmanuel Vadot                i2s2_clk, i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws,
64*0e8011faSEmmanuel Vadot                qua_mi2s_data, qua_mi2s_sclk, qua_mi2s_ws, slim_clk, slim_data,
65*0e8011faSEmmanuel Vadot                swr_rx_clk, swr_rx_data, swr_tx_clk, swr_tx_data, swr_wsa_clk,
66*0e8011faSEmmanuel Vadot                swr_wsa_data ]
67*0e8011faSEmmanuel Vadot        description:
68*0e8011faSEmmanuel Vadot          Specify the alternative function to be configured for the specified
69*0e8011faSEmmanuel Vadot          pins.
70*0e8011faSEmmanuel Vadot
71*0e8011faSEmmanuel VadotallOf:
72*0e8011faSEmmanuel Vadot  - $ref: qcom,lpass-lpi-common.yaml#
73*0e8011faSEmmanuel Vadot
74*0e8011faSEmmanuel Vadotrequired:
75*0e8011faSEmmanuel Vadot  - compatible
76*0e8011faSEmmanuel Vadot  - reg
77*0e8011faSEmmanuel Vadot  - clocks
78*0e8011faSEmmanuel Vadot  - clock-names
79*0e8011faSEmmanuel Vadot
80*0e8011faSEmmanuel VadotunevaluatedProperties: false
81*0e8011faSEmmanuel Vadot
82*0e8011faSEmmanuel Vadotexamples:
83*0e8011faSEmmanuel Vadot  - |
84*0e8011faSEmmanuel Vadot    #include <dt-bindings/sound/qcom,q6afe.h>
85*0e8011faSEmmanuel Vadot    lpi_tlmm: pinctrl@a7c0000 {
86*0e8011faSEmmanuel Vadot        compatible = "qcom,sm4250-lpass-lpi-pinctrl";
87*0e8011faSEmmanuel Vadot        reg = <0xa7c0000 0x20000>,
88*0e8011faSEmmanuel Vadot              <0xa950000 0x10000>;
89*0e8011faSEmmanuel Vadot        clocks = <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
90*0e8011faSEmmanuel Vadot        clock-names = "audio";
91*0e8011faSEmmanuel Vadot        gpio-controller;
92*0e8011faSEmmanuel Vadot        #gpio-cells = <2>;
93*0e8011faSEmmanuel Vadot        gpio-ranges = <&lpi_tlmm 0 0 19>;
94*0e8011faSEmmanuel Vadot
95*0e8011faSEmmanuel Vadot        i2s2-active-state {
96*0e8011faSEmmanuel Vadot            clk-pins {
97*0e8011faSEmmanuel Vadot                pins = "gpio10";
98*0e8011faSEmmanuel Vadot                function = "i2s2_clk";
99*0e8011faSEmmanuel Vadot                drive-strength = <2>;
100*0e8011faSEmmanuel Vadot                slew-rate = <1>;
101*0e8011faSEmmanuel Vadot                bias-disable;
102*0e8011faSEmmanuel Vadot            };
103*0e8011faSEmmanuel Vadot
104*0e8011faSEmmanuel Vadot            data-pins {
105*0e8011faSEmmanuel Vadot                pins = "gpio12";
106*0e8011faSEmmanuel Vadot                function = "i2s2_data";
107*0e8011faSEmmanuel Vadot                drive-strength = <2>;
108*0e8011faSEmmanuel Vadot                slew-rate = <1>;
109*0e8011faSEmmanuel Vadot            };
110*0e8011faSEmmanuel Vadot        };
111*0e8011faSEmmanuel Vadot
112*0e8011faSEmmanuel Vadot        i2s2-sleep-clk-state {
113*0e8011faSEmmanuel Vadot            pins = "gpio10";
114*0e8011faSEmmanuel Vadot            function = "i2s2_clk";
115*0e8011faSEmmanuel Vadot            drive-strength = <2>;
116*0e8011faSEmmanuel Vadot            bias-pull-down;
117*0e8011faSEmmanuel Vadot        };
118*0e8011faSEmmanuel Vadot    };
119