xref: /openbmc/linux/Documentation/devicetree/bindings/pinctrl/qcom,mdm9615-pinctrl.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
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 Armstrong  interrupt-controller: true
2719f7ad36SNeil Armstrong  '#interrupt-cells': true
2819f7ad36SNeil Armstrong  gpio-controller: true
2919f7ad36SNeil Armstrong  '#gpio-cells': true
3019f7ad36SNeil Armstrong  gpio-ranges: true
3119f7ad36SNeil Armstrong
3219f7ad36SNeil Armstrongrequired:
3319f7ad36SNeil Armstrong  - compatible
3419f7ad36SNeil Armstrong  - reg
3519f7ad36SNeil Armstrong
3619f7ad36SNeil ArmstrongadditionalProperties: false
3719f7ad36SNeil Armstrong
3819f7ad36SNeil ArmstrongpatternProperties:
3919f7ad36SNeil Armstrong  "-state$":
4019f7ad36SNeil Armstrong    oneOf:
4119f7ad36SNeil Armstrong      - $ref: "#/$defs/qcom-mdm9615-pinctrl-state"
4219f7ad36SNeil Armstrong      - patternProperties:
4319f7ad36SNeil Armstrong          "-pins$":
4419f7ad36SNeil Armstrong            $ref: "#/$defs/qcom-mdm9615-pinctrl-state"
4519f7ad36SNeil Armstrong        additionalProperties: false
4619f7ad36SNeil Armstrong
4719f7ad36SNeil Armstrong$defs:
4819f7ad36SNeil Armstrong  qcom-mdm9615-pinctrl-state:
4919f7ad36SNeil Armstrong    type: object
5019f7ad36SNeil Armstrong    description:
5119f7ad36SNeil Armstrong      Pinctrl node's client devices use subnodes for desired pin configuration.
5219f7ad36SNeil Armstrong      Client device subnodes use below standard properties.
5319f7ad36SNeil Armstrong    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
54*a64ad105SKrzysztof Kozlowski    unevaluatedProperties: false
5519f7ad36SNeil Armstrong
5619f7ad36SNeil Armstrong    properties:
5719f7ad36SNeil Armstrong      pins:
5819f7ad36SNeil Armstrong        description:
5919f7ad36SNeil Armstrong          List of gpio pins affected by the properties specified in this
6019f7ad36SNeil Armstrong          subnode.
6119f7ad36SNeil Armstrong        items:
6219f7ad36SNeil Armstrong          pattern: "^gpio([0-9]|[1-7][0-9]|8[0-7])$"
6319f7ad36SNeil Armstrong        minItems: 1
6419f7ad36SNeil Armstrong        maxItems: 16
6519f7ad36SNeil Armstrong
6619f7ad36SNeil Armstrong      function:
6719f7ad36SNeil Armstrong        description:
6819f7ad36SNeil Armstrong          Specify the alternative function to be configured for the specified
6919f7ad36SNeil Armstrong          pins.
7019f7ad36SNeil Armstrong
7119f7ad36SNeil Armstrong        enum: [ gpio, gsbi2_i2c, gsbi3, gsbi4, gsbi5_i2c, gsbi5_uart,
7219f7ad36SNeil Armstrong                sdc2, ebi2_lcdc, ps_hold, prim_audio, sec_audio, cdc_mclk, ]
7319f7ad36SNeil Armstrong
7419f7ad36SNeil Armstrong    required:
7519f7ad36SNeil Armstrong      - pins
7619f7ad36SNeil Armstrong
7719f7ad36SNeil Armstrongexamples:
7819f7ad36SNeil Armstrong  - |
7919f7ad36SNeil Armstrong    #include <dt-bindings/interrupt-controller/arm-gic.h>
8019f7ad36SNeil Armstrong    tlmm: pinctrl@1000000 {
8119f7ad36SNeil Armstrong      compatible = "qcom,mdm9615-pinctrl";
8219f7ad36SNeil Armstrong      reg = <0x01000000 0x300000>;
8319f7ad36SNeil Armstrong      interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
8419f7ad36SNeil Armstrong      gpio-controller;
8519f7ad36SNeil Armstrong      gpio-ranges = <&msmgpio 0 0 88>;
8619f7ad36SNeil Armstrong      #gpio-cells = <2>;
8719f7ad36SNeil Armstrong      interrupt-controller;
8819f7ad36SNeil Armstrong      #interrupt-cells = <2>;
8919f7ad36SNeil Armstrong
9019f7ad36SNeil Armstrong      gsbi3-state {
9119f7ad36SNeil Armstrong        pins = "gpio8", "gpio9", "gpio10", "gpio11";
9219f7ad36SNeil Armstrong        function = "gsbi3";
9319f7ad36SNeil Armstrong        drive-strength = <8>;
9419f7ad36SNeil Armstrong        bias-disable;
9519f7ad36SNeil Armstrong      };
9619f7ad36SNeil Armstrong
9719f7ad36SNeil Armstrong      gsbi5-i2c-state {
9819f7ad36SNeil Armstrong        sda-pins {
9919f7ad36SNeil Armstrong          pins = "gpio16";
10019f7ad36SNeil Armstrong          function = "gsbi5_i2c";
10119f7ad36SNeil Armstrong          drive-strength = <8>;
10219f7ad36SNeil Armstrong          bias-disable;
10319f7ad36SNeil Armstrong        };
10419f7ad36SNeil Armstrong
10519f7ad36SNeil Armstrong        scl-pins {
10619f7ad36SNeil Armstrong          pins = "gpio17";
10719f7ad36SNeil Armstrong          function = "gsbi5_i2c";
10819f7ad36SNeil Armstrong          drive-strength = <2>;
10919f7ad36SNeil Armstrong          bias-disable;
11019f7ad36SNeil Armstrong        };
11119f7ad36SNeil Armstrong      };
11219f7ad36SNeil Armstrong    };
113