xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.yaml (revision b22794c0f7b13ece8e44245ab99b2dcdd199caf2)
119f7ad36SNeil Armstrong# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
219f7ad36SNeil Armstrong%YAML 1.2
319f7ad36SNeil Armstrong---
419f7ad36SNeil Armstrong$id: http://devicetree.org/schemas/pinctrl/qcom,mdm9615-pinctrl.yaml#
519f7ad36SNeil Armstrong$schema: http://devicetree.org/meta-schemas/core.yaml#
619f7ad36SNeil Armstrong
719f7ad36SNeil Armstrongtitle: Qualcomm Technologies, Inc. MDM9615 TLMM block
819f7ad36SNeil Armstrong
919f7ad36SNeil Armstrongmaintainers:
1019f7ad36SNeil Armstrong  - Bjorn Andersson <andersson@kernel.org>
1119f7ad36SNeil Armstrong
1219f7ad36SNeil Armstrongdescription: Top Level Mode Multiplexer pin controller in Qualcomm MDM9615 SoC.
1319f7ad36SNeil Armstrong
1419f7ad36SNeil Armstrong$ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
1519f7ad36SNeil Armstrong
1619f7ad36SNeil Armstrongproperties:
1719f7ad36SNeil Armstrong  compatible:
1819f7ad36SNeil Armstrong    const: qcom,mdm9615-pinctrl
1919f7ad36SNeil Armstrong
2019f7ad36SNeil Armstrong  reg:
2119f7ad36SNeil Armstrong    maxItems: 1
2219f7ad36SNeil Armstrong
2312a18bb7SKrzysztof Kozlowski  interrupts:
2412a18bb7SKrzysztof Kozlowski    maxItems: 1
2512a18bb7SKrzysztof Kozlowski
2619f7ad36SNeil ArmstrongpatternProperties:
2719f7ad36SNeil Armstrong  "-state$":
2819f7ad36SNeil Armstrong    oneOf:
2919f7ad36SNeil Armstrong      - $ref: "#/$defs/qcom-mdm9615-pinctrl-state"
3019f7ad36SNeil Armstrong      - patternProperties:
3119f7ad36SNeil Armstrong          "-pins$":
3219f7ad36SNeil Armstrong            $ref: "#/$defs/qcom-mdm9615-pinctrl-state"
3319f7ad36SNeil Armstrong        additionalProperties: false
3419f7ad36SNeil Armstrong
3519f7ad36SNeil Armstrong$defs:
3619f7ad36SNeil Armstrong  qcom-mdm9615-pinctrl-state:
3719f7ad36SNeil Armstrong    type: object
3819f7ad36SNeil Armstrong    description:
3919f7ad36SNeil Armstrong      Pinctrl node's client devices use subnodes for desired pin configuration.
4019f7ad36SNeil Armstrong      Client device subnodes use below standard properties.
4119f7ad36SNeil Armstrong    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
42a64ad105SKrzysztof Kozlowski    unevaluatedProperties: false
4319f7ad36SNeil Armstrong
4419f7ad36SNeil Armstrong    properties:
4519f7ad36SNeil Armstrong      pins:
4619f7ad36SNeil Armstrong        description:
4719f7ad36SNeil Armstrong          List of gpio pins affected by the properties specified in this
4819f7ad36SNeil Armstrong          subnode.
4919f7ad36SNeil Armstrong        items:
5019f7ad36SNeil Armstrong          pattern: "^gpio([0-9]|[1-7][0-9]|8[0-7])$"
5119f7ad36SNeil Armstrong        minItems: 1
5219f7ad36SNeil Armstrong        maxItems: 16
5319f7ad36SNeil Armstrong
5419f7ad36SNeil Armstrong      function:
5519f7ad36SNeil Armstrong        description:
5619f7ad36SNeil Armstrong          Specify the alternative function to be configured for the specified
5719f7ad36SNeil Armstrong          pins.
5819f7ad36SNeil Armstrong
5919f7ad36SNeil Armstrong        enum: [ gpio, gsbi2_i2c, gsbi3, gsbi4, gsbi5_i2c, gsbi5_uart,
6019f7ad36SNeil Armstrong                sdc2, ebi2_lcdc, ps_hold, prim_audio, sec_audio, cdc_mclk, ]
6119f7ad36SNeil Armstrong
6219f7ad36SNeil Armstrong    required:
6319f7ad36SNeil Armstrong      - pins
6419f7ad36SNeil Armstrong
65*b22794c0SKrzysztof Kozlowskirequired:
66*b22794c0SKrzysztof Kozlowski  - compatible
67*b22794c0SKrzysztof Kozlowski  - reg
68*b22794c0SKrzysztof Kozlowski
69*b22794c0SKrzysztof KozlowskiunevaluatedProperties: false
70*b22794c0SKrzysztof Kozlowski
7119f7ad36SNeil Armstrongexamples:
7219f7ad36SNeil Armstrong  - |
7319f7ad36SNeil Armstrong    #include <dt-bindings/interrupt-controller/arm-gic.h>
7419f7ad36SNeil Armstrong    tlmm: pinctrl@1000000 {
7519f7ad36SNeil Armstrong      compatible = "qcom,mdm9615-pinctrl";
7619f7ad36SNeil Armstrong      reg = <0x01000000 0x300000>;
7719f7ad36SNeil Armstrong      interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
7819f7ad36SNeil Armstrong      gpio-controller;
7919f7ad36SNeil Armstrong      gpio-ranges = <&msmgpio 0 0 88>;
8019f7ad36SNeil Armstrong      #gpio-cells = <2>;
8119f7ad36SNeil Armstrong      interrupt-controller;
8219f7ad36SNeil Armstrong      #interrupt-cells = <2>;
8319f7ad36SNeil Armstrong
8419f7ad36SNeil Armstrong      gsbi3-state {
8519f7ad36SNeil Armstrong        pins = "gpio8", "gpio9", "gpio10", "gpio11";
8619f7ad36SNeil Armstrong        function = "gsbi3";
8719f7ad36SNeil Armstrong        drive-strength = <8>;
8819f7ad36SNeil Armstrong        bias-disable;
8919f7ad36SNeil Armstrong      };
9019f7ad36SNeil Armstrong
9119f7ad36SNeil Armstrong      gsbi5-i2c-state {
9219f7ad36SNeil Armstrong        sda-pins {
9319f7ad36SNeil Armstrong          pins = "gpio16";
9419f7ad36SNeil Armstrong          function = "gsbi5_i2c";
9519f7ad36SNeil Armstrong          drive-strength = <8>;
9619f7ad36SNeil Armstrong          bias-disable;
9719f7ad36SNeil Armstrong        };
9819f7ad36SNeil Armstrong
9919f7ad36SNeil Armstrong        scl-pins {
10019f7ad36SNeil Armstrong          pins = "gpio17";
10119f7ad36SNeil Armstrong          function = "gsbi5_i2c";
10219f7ad36SNeil Armstrong          drive-strength = <2>;
10319f7ad36SNeil Armstrong          bias-disable;
10419f7ad36SNeil Armstrong        };
10519f7ad36SNeil Armstrong      };
10619f7ad36SNeil Armstrong    };
107