xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
17ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
27ef62cebSEmmanuel Vadot%YAML 1.2
37ef62cebSEmmanuel Vadot---
47ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml#
57ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
67ef62cebSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Qualcomm SM8450 SoC LPASS LPI TLMM
87ef62cebSEmmanuel Vadot
97ef62cebSEmmanuel Vadotmaintainers:
107ef62cebSEmmanuel Vadot  - Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
117ef62cebSEmmanuel 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 SM8450 SoC.
157ef62cebSEmmanuel Vadot
167ef62cebSEmmanuel Vadotproperties:
177ef62cebSEmmanuel Vadot  compatible:
187ef62cebSEmmanuel Vadot    const: qcom,sm8450-lpass-lpi-pinctrl
197ef62cebSEmmanuel Vadot
207ef62cebSEmmanuel Vadot  reg:
217ef62cebSEmmanuel Vadot    items:
227ef62cebSEmmanuel Vadot      - description: LPASS LPI TLMM Control and Status registers
23fac71e4eSEmmanuel Vadot      - description: LPASS LPI MCC registers
247ef62cebSEmmanuel Vadot
257ef62cebSEmmanuel Vadot  clocks:
267ef62cebSEmmanuel Vadot    items:
277ef62cebSEmmanuel Vadot      - description: LPASS Core voting clock
287ef62cebSEmmanuel Vadot      - description: LPASS Audio voting clock
297ef62cebSEmmanuel Vadot
307ef62cebSEmmanuel Vadot  clock-names:
317ef62cebSEmmanuel Vadot    items:
327ef62cebSEmmanuel Vadot      - const: core
337ef62cebSEmmanuel Vadot      - const: audio
347ef62cebSEmmanuel Vadot
357ef62cebSEmmanuel VadotpatternProperties:
368bab661aSEmmanuel Vadot  "-state$":
378bab661aSEmmanuel Vadot    oneOf:
388bab661aSEmmanuel Vadot      - $ref: "#/$defs/qcom-sm8450-lpass-state"
398bab661aSEmmanuel Vadot      - patternProperties:
408bab661aSEmmanuel Vadot          "-pins$":
418bab661aSEmmanuel Vadot            $ref: "#/$defs/qcom-sm8450-lpass-state"
428bab661aSEmmanuel Vadot        additionalProperties: false
438bab661aSEmmanuel Vadot
448bab661aSEmmanuel Vadot$defs:
458bab661aSEmmanuel Vadot  qcom-sm8450-lpass-state:
467ef62cebSEmmanuel Vadot    type: object
477ef62cebSEmmanuel Vadot    description:
487ef62cebSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
497ef62cebSEmmanuel Vadot      Client device subnodes use below standard properties.
50*8d13bc63SEmmanuel Vadot    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
51*8d13bc63SEmmanuel Vadot    unevaluatedProperties: false
527ef62cebSEmmanuel Vadot
537ef62cebSEmmanuel Vadot    properties:
547ef62cebSEmmanuel Vadot      pins:
557ef62cebSEmmanuel Vadot        description:
567ef62cebSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
577ef62cebSEmmanuel Vadot          subnode.
587ef62cebSEmmanuel Vadot        items:
59cb7aa33aSEmmanuel Vadot          pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
607ef62cebSEmmanuel Vadot
617ef62cebSEmmanuel Vadot      function:
627ef62cebSEmmanuel Vadot        enum: [ swr_tx_clk, swr_tx_data, swr_rx_clk, swr_rx_data,
637ef62cebSEmmanuel Vadot                dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic4_clk,
647ef62cebSEmmanuel Vadot                dmic4_data, i2s2_clk, i2s2_ws, dmic3_clk, dmic3_data,
657ef62cebSEmmanuel Vadot                qua_mi2s_sclk, qua_mi2s_ws, qua_mi2s_data, i2s1_clk, i2s1_ws,
667ef62cebSEmmanuel Vadot                i2s1_data, wsa_swr_clk, wsa_swr_data, wsa2_swr_clk,
677ef62cebSEmmanuel Vadot                wsa2_swr_data, i2s2_data, i2s4_ws, i2s4_clk, i2s4_data,
687ef62cebSEmmanuel Vadot                slimbus_clk, i2s3_clk, i2s3_ws, i2s3_data, slimbus_data,
697ef62cebSEmmanuel Vadot                ext_mclk1_c, ext_mclk1_b, ext_mclk1_a, ext_mclk1_d,
707ef62cebSEmmanuel Vadot                ext_mclk1_e ]
717ef62cebSEmmanuel Vadot        description:
727ef62cebSEmmanuel Vadot          Specify the alternative function to be configured for the specified
737ef62cebSEmmanuel Vadot          pins.
747ef62cebSEmmanuel Vadot
757ef62cebSEmmanuel VadotallOf:
76*8d13bc63SEmmanuel Vadot  - $ref: qcom,lpass-lpi-common.yaml#
777ef62cebSEmmanuel Vadot
787ef62cebSEmmanuel Vadotrequired:
797ef62cebSEmmanuel Vadot  - compatible
807ef62cebSEmmanuel Vadot  - reg
817ef62cebSEmmanuel Vadot  - clocks
827ef62cebSEmmanuel Vadot  - clock-names
837ef62cebSEmmanuel Vadot
84*8d13bc63SEmmanuel VadotunevaluatedProperties: false
857ef62cebSEmmanuel Vadot
867ef62cebSEmmanuel Vadotexamples:
877ef62cebSEmmanuel Vadot  - |
887ef62cebSEmmanuel Vadot    #include <dt-bindings/sound/qcom,q6afe.h>
897ef62cebSEmmanuel Vadot    pinctrl@3440000 {
907ef62cebSEmmanuel Vadot        compatible = "qcom,sm8450-lpass-lpi-pinctrl";
917ef62cebSEmmanuel Vadot        reg = <0x3440000 0x20000>,
927ef62cebSEmmanuel Vadot              <0x34d0000 0x10000>;
937ef62cebSEmmanuel Vadot        clocks = <&q6afecc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
947ef62cebSEmmanuel Vadot                 <&q6afecc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
957ef62cebSEmmanuel Vadot        clock-names = "core", "audio";
967ef62cebSEmmanuel Vadot        gpio-controller;
977ef62cebSEmmanuel Vadot        #gpio-cells = <2>;
987ef62cebSEmmanuel Vadot        gpio-ranges = <&lpi_tlmm 0 0 23>;
998bab661aSEmmanuel Vadot
1008bab661aSEmmanuel Vadot        wsa-swr-active-state {
1018bab661aSEmmanuel Vadot            clk-pins {
1028bab661aSEmmanuel Vadot                pins = "gpio10";
1038bab661aSEmmanuel Vadot                function = "wsa_swr_clk";
1048bab661aSEmmanuel Vadot                drive-strength = <2>;
1058bab661aSEmmanuel Vadot                slew-rate = <1>;
1068bab661aSEmmanuel Vadot                bias-disable;
1078bab661aSEmmanuel Vadot            };
1088bab661aSEmmanuel Vadot
1098bab661aSEmmanuel Vadot            data-pins {
1108bab661aSEmmanuel Vadot                pins = "gpio11";
1118bab661aSEmmanuel Vadot                function = "wsa_swr_data";
1128bab661aSEmmanuel Vadot                drive-strength = <2>;
1138bab661aSEmmanuel Vadot                slew-rate = <1>;
1148bab661aSEmmanuel Vadot            };
1158bab661aSEmmanuel Vadot        };
1168bab661aSEmmanuel Vadot
1178bab661aSEmmanuel Vadot        tx-swr-sleep-clk-state {
1188bab661aSEmmanuel Vadot            pins = "gpio0";
1198bab661aSEmmanuel Vadot            function = "swr_tx_clk";
1208bab661aSEmmanuel Vadot            drive-strength = <2>;
1218bab661aSEmmanuel Vadot            bias-pull-down;
1228bab661aSEmmanuel Vadot        };
1237ef62cebSEmmanuel Vadot    };
124