xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,msm8226-pinctrl.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
16be33864SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
26be33864SEmmanuel Vadot%YAML 1.2
36be33864SEmmanuel Vadot---
46be33864SEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,msm8226-pinctrl.yaml#
56be33864SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
66be33864SEmmanuel Vadot
76be33864SEmmanuel Vadottitle: Qualcomm Technologies, Inc. MSM8226 TLMM block
86be33864SEmmanuel Vadot
96be33864SEmmanuel Vadotmaintainers:
106be33864SEmmanuel Vadot  - Bjorn Andersson <bjorn.andersson@linaro.org>
116be33864SEmmanuel Vadot
12*8bab661aSEmmanuel Vadotdescription:
13*8bab661aSEmmanuel Vadot  Top Level Mode Multiplexer pin controller in Qualcomm MSM8226 SoC.
146be33864SEmmanuel Vadot
156be33864SEmmanuel Vadotproperties:
166be33864SEmmanuel Vadot  compatible:
176be33864SEmmanuel Vadot    const: qcom,msm8226-pinctrl
186be33864SEmmanuel Vadot
196be33864SEmmanuel Vadot  reg:
206be33864SEmmanuel Vadot    description: Specifies the base address and size of the TLMM register space
216be33864SEmmanuel Vadot    maxItems: 1
226be33864SEmmanuel Vadot
23*8bab661aSEmmanuel Vadot  interrupts: true
246be33864SEmmanuel Vadot  interrupt-controller: true
25*8bab661aSEmmanuel Vadot  "#interrupt-cells": true
266be33864SEmmanuel Vadot  gpio-controller: true
27*8bab661aSEmmanuel Vadot  "#gpio-cells": true
28*8bab661aSEmmanuel Vadot  gpio-ranges: true
296be33864SEmmanuel Vadot
306be33864SEmmanuel Vadot  gpio-reserved-ranges:
316be33864SEmmanuel Vadot    maxItems: 1
326be33864SEmmanuel Vadot
336be33864SEmmanuel VadotpatternProperties:
34*8bab661aSEmmanuel Vadot  "-state$":
35*8bab661aSEmmanuel Vadot    oneOf:
36*8bab661aSEmmanuel Vadot      - $ref: "#/$defs/qcom-msm8226-tlmm-state"
37*8bab661aSEmmanuel Vadot      - patternProperties:
38*8bab661aSEmmanuel Vadot          "-pins$":
39*8bab661aSEmmanuel Vadot            $ref: "#/$defs/qcom-msm8226-tlmm-state"
40*8bab661aSEmmanuel Vadot        additionalProperties: false
41*8bab661aSEmmanuel Vadot
42*8bab661aSEmmanuel Vadot$defs:
43*8bab661aSEmmanuel Vadot  qcom-msm8226-tlmm-state:
446be33864SEmmanuel Vadot    type: object
456be33864SEmmanuel Vadot    description:
466be33864SEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
476be33864SEmmanuel Vadot      Client device subnodes use below standard properties.
48*8bab661aSEmmanuel Vadot    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
496be33864SEmmanuel Vadot
506be33864SEmmanuel Vadot    properties:
516be33864SEmmanuel Vadot      pins:
526be33864SEmmanuel Vadot        description:
536be33864SEmmanuel Vadot          List of gpio pins affected by the properties specified in this
546be33864SEmmanuel Vadot          subnode.
556be33864SEmmanuel Vadot        items:
566be33864SEmmanuel Vadot          oneOf:
576be33864SEmmanuel Vadot            - pattern: "^gpio([0-9]|[1-9][0-9]|1[0-1][0-6])$"
586be33864SEmmanuel Vadot            - enum: [ sdc1_clk, sdc1_cmd, sdc1_data, sdc2_clk, sdc2_cmd, sdc2_data ]
596be33864SEmmanuel Vadot        minItems: 1
606be33864SEmmanuel Vadot        maxItems: 36
616be33864SEmmanuel Vadot
626be33864SEmmanuel Vadot      function:
636be33864SEmmanuel Vadot        description:
646be33864SEmmanuel Vadot          Specify the alternative function to be configured for the specified
656be33864SEmmanuel Vadot          pins. Functions are only valid for gpio pins.
666be33864SEmmanuel Vadot        enum: [ gpio, cci_i2c0, blsp_uim1, blsp_uim2, blsp_uim3, blsp_uim5,
67*8bab661aSEmmanuel Vadot                blsp_i2c1, blsp_i2c2, blsp_i2c3, blsp_i2c4, blsp_i2c5, blsp_spi1,
686be33864SEmmanuel Vadot                blsp_spi2, blsp_spi3, blsp_spi5, blsp_uart1, blsp_uart2,
69*8bab661aSEmmanuel Vadot                blsp_uart3, blsp_uart4, blsp_uart5, cam_mclk0, cam_mclk1, sdc3,
70*8bab661aSEmmanuel Vadot                wlan ]
716be33864SEmmanuel Vadot
726be33864SEmmanuel Vadot      bias-pull-down: true
736be33864SEmmanuel Vadot      bias-pull-up: true
746be33864SEmmanuel Vadot      bias-disable: true
75*8bab661aSEmmanuel Vadot      drive-strength: true
76*8bab661aSEmmanuel Vadot      input-enable: true
776be33864SEmmanuel Vadot      output-high: true
786be33864SEmmanuel Vadot      output-low: true
796be33864SEmmanuel Vadot
806be33864SEmmanuel Vadot    required:
816be33864SEmmanuel Vadot      - pins
826be33864SEmmanuel Vadot
836be33864SEmmanuel Vadot    additionalProperties: false
846be33864SEmmanuel Vadot
85e67e8565SEmmanuel VadotallOf:
86*8bab661aSEmmanuel Vadot  - $ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
87e67e8565SEmmanuel Vadot
886be33864SEmmanuel Vadotrequired:
896be33864SEmmanuel Vadot  - compatible
906be33864SEmmanuel Vadot  - reg
916be33864SEmmanuel Vadot
926be33864SEmmanuel VadotadditionalProperties: false
936be33864SEmmanuel Vadot
946be33864SEmmanuel Vadotexamples:
956be33864SEmmanuel Vadot  - |
966be33864SEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
976be33864SEmmanuel Vadot    msmgpio: pinctrl@fd510000 {
986be33864SEmmanuel Vadot        compatible = "qcom,msm8226-pinctrl";
996be33864SEmmanuel Vadot        reg = <0xfd510000 0x4000>;
1006be33864SEmmanuel Vadot
1016be33864SEmmanuel Vadot        gpio-controller;
1026be33864SEmmanuel Vadot        #gpio-cells = <2>;
1036be33864SEmmanuel Vadot        gpio-ranges = <&msmgpio 0 0 117>;
1046be33864SEmmanuel Vadot        interrupt-controller;
1056be33864SEmmanuel Vadot        #interrupt-cells = <2>;
1066be33864SEmmanuel Vadot        interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
1076be33864SEmmanuel Vadot
108*8bab661aSEmmanuel Vadot        serial-state {
1096be33864SEmmanuel Vadot            pins = "gpio8", "gpio9";
1106be33864SEmmanuel Vadot            function = "blsp_uart3";
1116be33864SEmmanuel Vadot            drive-strength = <8>;
1126be33864SEmmanuel Vadot            bias-disable;
1136be33864SEmmanuel Vadot        };
1146be33864SEmmanuel Vadot    };
115