xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml (revision cf9610f9116d55c5a66ef9f1faecacabd93a9322)
13bf14aecSLuca Weiss# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
23bf14aecSLuca Weiss%YAML 1.2
33bf14aecSLuca Weiss---
43bf14aecSLuca Weiss$id: http://devicetree.org/schemas/pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml#
53bf14aecSLuca Weiss$schema: http://devicetree.org/meta-schemas/core.yaml#
63bf14aecSLuca Weiss
73bf14aecSLuca Weisstitle: Qualcomm Milos SoC LPASS LPI TLMM
83bf14aecSLuca Weiss
93bf14aecSLuca Weissmaintainers:
103bf14aecSLuca Weiss  - Luca Weiss <luca.weiss@fairphone.com>
113bf14aecSLuca Weiss
123bf14aecSLuca Weissdescription:
133bf14aecSLuca Weiss  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
143bf14aecSLuca Weiss  (LPASS) Low Power Island (LPI) of Qualcomm Milos SoC.
153bf14aecSLuca Weiss
163bf14aecSLuca Weissproperties:
173bf14aecSLuca Weiss  compatible:
18*f81bcaaeSRavi Hothi    enum:
19*f81bcaaeSRavi Hothi      - qcom,eliza-lpass-lpi-pinctrl
20*f81bcaaeSRavi Hothi      - qcom,milos-lpass-lpi-pinctrl
213bf14aecSLuca Weiss
223bf14aecSLuca Weiss  reg:
23*f81bcaaeSRavi Hothi    minItems: 1
243bf14aecSLuca Weiss    items:
253bf14aecSLuca Weiss      - description: LPASS LPI TLMM Control and Status registers
263bf14aecSLuca Weiss      - description: LPASS LPI MCC registers
273bf14aecSLuca Weiss
283bf14aecSLuca Weiss  clocks:
293bf14aecSLuca Weiss    items:
303bf14aecSLuca Weiss      - description: LPASS Core voting clock
313bf14aecSLuca Weiss      - description: LPASS Audio voting clock
323bf14aecSLuca Weiss
333bf14aecSLuca Weiss  clock-names:
343bf14aecSLuca Weiss    items:
353bf14aecSLuca Weiss      - const: core
363bf14aecSLuca Weiss      - const: audio
373bf14aecSLuca Weiss
383bf14aecSLuca WeisspatternProperties:
393bf14aecSLuca Weiss  "-state$":
403bf14aecSLuca Weiss    oneOf:
413bf14aecSLuca Weiss      - $ref: "#/$defs/qcom-milos-lpass-state"
423bf14aecSLuca Weiss      - patternProperties:
433bf14aecSLuca Weiss          "-pins$":
443bf14aecSLuca Weiss            $ref: "#/$defs/qcom-milos-lpass-state"
453bf14aecSLuca Weiss        additionalProperties: false
463bf14aecSLuca Weiss
473bf14aecSLuca Weiss$defs:
483bf14aecSLuca Weiss  qcom-milos-lpass-state:
493bf14aecSLuca Weiss    type: object
503bf14aecSLuca Weiss    description:
513bf14aecSLuca Weiss      Pinctrl node's client devices use subnodes for desired pin configuration.
523bf14aecSLuca Weiss      Client device subnodes use below standard properties.
533bf14aecSLuca Weiss    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
543bf14aecSLuca Weiss    unevaluatedProperties: false
553bf14aecSLuca Weiss
563bf14aecSLuca Weiss    properties:
573bf14aecSLuca Weiss      pins:
583bf14aecSLuca Weiss        description:
593bf14aecSLuca Weiss          List of gpio pins affected by the properties specified in this
603bf14aecSLuca Weiss          subnode.
613bf14aecSLuca Weiss        items:
623bf14aecSLuca Weiss          pattern: "^gpio([0-9]|1[0-9]|2[0-2])$"
633bf14aecSLuca Weiss
643bf14aecSLuca Weiss      function:
653bf14aecSLuca Weiss        enum: [ dmic1_clk, dmic1_data, dmic2_clk, dmic2_data, dmic3_clk,
663bf14aecSLuca Weiss                dmic3_data, dmic4_clk, dmic4_data, ext_mclk1_a, ext_mclk1_b,
673bf14aecSLuca Weiss                ext_mclk1_c, ext_mclk1_d, ext_mclk1_e, gpio, i2s0_clk,
683bf14aecSLuca Weiss                i2s0_data, i2s0_ws, i2s1_clk, i2s1_data, i2s1_ws, i2s2_clk,
693bf14aecSLuca Weiss                i2s2_data, i2s2_ws, i2s3_clk, i2s3_data, i2s3_ws, qca_swr_clk,
703bf14aecSLuca Weiss                qca_swr_data, slimbus_clk, slimbus_data, swr_rx_clk,
713bf14aecSLuca Weiss                swr_rx_data, swr_tx_clk, swr_tx_data, wsa_swr_clk,
723bf14aecSLuca Weiss                wsa_swr_data ]
733bf14aecSLuca Weiss        description:
743bf14aecSLuca Weiss          Specify the alternative function to be configured for the specified
753bf14aecSLuca Weiss          pins.
763bf14aecSLuca Weiss
773bf14aecSLuca WeissallOf:
783bf14aecSLuca Weiss  - $ref: qcom,lpass-lpi-common.yaml#
793bf14aecSLuca Weiss
80*f81bcaaeSRavi Hothi  - if:
81*f81bcaaeSRavi Hothi      properties:
82*f81bcaaeSRavi Hothi        compatible:
83*f81bcaaeSRavi Hothi          const: qcom,eliza-lpass-lpi-pinctrl
84*f81bcaaeSRavi Hothi    then:
85*f81bcaaeSRavi Hothi      properties:
86*f81bcaaeSRavi Hothi        reg:
87*f81bcaaeSRavi Hothi          maxItems: 1
88*f81bcaaeSRavi Hothi    else:
89*f81bcaaeSRavi Hothi      properties:
90*f81bcaaeSRavi Hothi        reg:
91*f81bcaaeSRavi Hothi          minItems: 2
92*f81bcaaeSRavi Hothi
933bf14aecSLuca Weissrequired:
943bf14aecSLuca Weiss  - compatible
953bf14aecSLuca Weiss  - reg
963bf14aecSLuca Weiss  - clocks
973bf14aecSLuca Weiss  - clock-names
983bf14aecSLuca Weiss
993bf14aecSLuca WeissunevaluatedProperties: false
1003bf14aecSLuca Weiss
1013bf14aecSLuca Weissexamples:
1023bf14aecSLuca Weiss  - |
1033bf14aecSLuca Weiss    #include <dt-bindings/sound/qcom,q6dsp-lpass-ports.h>
1043bf14aecSLuca Weiss
1053bf14aecSLuca Weiss    pinctrl@3440000 {
1063bf14aecSLuca Weiss        compatible = "qcom,milos-lpass-lpi-pinctrl";
1073bf14aecSLuca Weiss        reg = <0x03440000 0x20000>,
1083bf14aecSLuca Weiss              <0x034d0000 0x10000>;
1093bf14aecSLuca Weiss        gpio-controller;
1103bf14aecSLuca Weiss        #gpio-cells = <2>;
1113bf14aecSLuca Weiss        gpio-ranges = <&lpass_tlmm 0 0 23>;
1123bf14aecSLuca Weiss
1133bf14aecSLuca Weiss        clocks = <&q6prmcc LPASS_HW_MACRO_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>,
1143bf14aecSLuca Weiss                 <&q6prmcc LPASS_HW_DCODEC_VOTE LPASS_CLK_ATTRIBUTE_COUPLE_NO>;
1153bf14aecSLuca Weiss        clock-names = "core",
1163bf14aecSLuca Weiss                      "audio";
1173bf14aecSLuca Weiss
1183bf14aecSLuca Weiss        tx-swr-active-clk-state {
1193bf14aecSLuca Weiss            pins = "gpio0";
1203bf14aecSLuca Weiss            function = "swr_tx_clk";
1213bf14aecSLuca Weiss            drive-strength = <4>;
1223bf14aecSLuca Weiss            slew-rate = <1>;
1233bf14aecSLuca Weiss            bias-disable;
1243bf14aecSLuca Weiss        };
1253bf14aecSLuca Weiss    };
126