xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/qcom,mdm9615-pinctrl.yaml (revision 8bab661a3316d8bd9b9fbd11a3b4371b91507bd2)
1*8bab661aSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*8bab661aSEmmanuel Vadot%YAML 1.2
3*8bab661aSEmmanuel Vadot---
4*8bab661aSEmmanuel Vadot$id: http://devicetree.org/schemas/pinctrl/qcom,mdm9615-pinctrl.yaml#
5*8bab661aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8bab661aSEmmanuel Vadot
7*8bab661aSEmmanuel Vadottitle: Qualcomm Technologies, Inc. MDM9615 TLMM block
8*8bab661aSEmmanuel Vadot
9*8bab661aSEmmanuel Vadotmaintainers:
10*8bab661aSEmmanuel Vadot  - Bjorn Andersson <andersson@kernel.org>
11*8bab661aSEmmanuel Vadot
12*8bab661aSEmmanuel Vadotdescription: Top Level Mode Multiplexer pin controller in Qualcomm MDM9615 SoC.
13*8bab661aSEmmanuel Vadot
14*8bab661aSEmmanuel Vadot$ref: /schemas/pinctrl/qcom,tlmm-common.yaml#
15*8bab661aSEmmanuel Vadot
16*8bab661aSEmmanuel Vadotproperties:
17*8bab661aSEmmanuel Vadot  compatible:
18*8bab661aSEmmanuel Vadot    const: qcom,mdm9615-pinctrl
19*8bab661aSEmmanuel Vadot
20*8bab661aSEmmanuel Vadot  reg:
21*8bab661aSEmmanuel Vadot    maxItems: 1
22*8bab661aSEmmanuel Vadot
23*8bab661aSEmmanuel Vadot  interrupts: true
24*8bab661aSEmmanuel Vadot  interrupt-controller: true
25*8bab661aSEmmanuel Vadot  '#interrupt-cells': true
26*8bab661aSEmmanuel Vadot  gpio-controller: true
27*8bab661aSEmmanuel Vadot  '#gpio-cells': true
28*8bab661aSEmmanuel Vadot  gpio-ranges: true
29*8bab661aSEmmanuel Vadot
30*8bab661aSEmmanuel Vadotrequired:
31*8bab661aSEmmanuel Vadot  - compatible
32*8bab661aSEmmanuel Vadot  - reg
33*8bab661aSEmmanuel Vadot
34*8bab661aSEmmanuel VadotadditionalProperties: false
35*8bab661aSEmmanuel Vadot
36*8bab661aSEmmanuel VadotpatternProperties:
37*8bab661aSEmmanuel Vadot  "-state$":
38*8bab661aSEmmanuel Vadot    oneOf:
39*8bab661aSEmmanuel Vadot      - $ref: "#/$defs/qcom-mdm9615-pinctrl-state"
40*8bab661aSEmmanuel Vadot      - patternProperties:
41*8bab661aSEmmanuel Vadot          "-pins$":
42*8bab661aSEmmanuel Vadot            $ref: "#/$defs/qcom-mdm9615-pinctrl-state"
43*8bab661aSEmmanuel Vadot        additionalProperties: false
44*8bab661aSEmmanuel Vadot
45*8bab661aSEmmanuel Vadot$defs:
46*8bab661aSEmmanuel Vadot  qcom-mdm9615-pinctrl-state:
47*8bab661aSEmmanuel Vadot    type: object
48*8bab661aSEmmanuel Vadot    description:
49*8bab661aSEmmanuel Vadot      Pinctrl node's client devices use subnodes for desired pin configuration.
50*8bab661aSEmmanuel Vadot      Client device subnodes use below standard properties.
51*8bab661aSEmmanuel Vadot    $ref: qcom,tlmm-common.yaml#/$defs/qcom-tlmm-state
52*8bab661aSEmmanuel Vadot
53*8bab661aSEmmanuel Vadot    properties:
54*8bab661aSEmmanuel Vadot      pins:
55*8bab661aSEmmanuel Vadot        description:
56*8bab661aSEmmanuel Vadot          List of gpio pins affected by the properties specified in this
57*8bab661aSEmmanuel Vadot          subnode.
58*8bab661aSEmmanuel Vadot        items:
59*8bab661aSEmmanuel Vadot          pattern: "^gpio([0-9]|[1-7][0-9]|8[0-7])$"
60*8bab661aSEmmanuel Vadot        minItems: 1
61*8bab661aSEmmanuel Vadot        maxItems: 16
62*8bab661aSEmmanuel Vadot
63*8bab661aSEmmanuel Vadot      function:
64*8bab661aSEmmanuel Vadot        description:
65*8bab661aSEmmanuel Vadot          Specify the alternative function to be configured for the specified
66*8bab661aSEmmanuel Vadot          pins.
67*8bab661aSEmmanuel Vadot
68*8bab661aSEmmanuel Vadot        enum: [ gpio, gsbi2_i2c, gsbi3, gsbi4, gsbi5_i2c, gsbi5_uart,
69*8bab661aSEmmanuel Vadot                sdc2, ebi2_lcdc, ps_hold, prim_audio, sec_audio, cdc_mclk, ]
70*8bab661aSEmmanuel Vadot
71*8bab661aSEmmanuel Vadot      bias-disable: true
72*8bab661aSEmmanuel Vadot      bias-pull-down: true
73*8bab661aSEmmanuel Vadot      bias-pull-up: true
74*8bab661aSEmmanuel Vadot      drive-strength: true
75*8bab661aSEmmanuel Vadot      output-high: true
76*8bab661aSEmmanuel Vadot      output-low: true
77*8bab661aSEmmanuel Vadot      input-enable: true
78*8bab661aSEmmanuel Vadot
79*8bab661aSEmmanuel Vadot    required:
80*8bab661aSEmmanuel Vadot      - pins
81*8bab661aSEmmanuel Vadot
82*8bab661aSEmmanuel Vadot    additionalProperties: false
83*8bab661aSEmmanuel Vadot
84*8bab661aSEmmanuel Vadotexamples:
85*8bab661aSEmmanuel Vadot  - |
86*8bab661aSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
87*8bab661aSEmmanuel Vadot    tlmm: pinctrl@1000000 {
88*8bab661aSEmmanuel Vadot      compatible = "qcom,mdm9615-pinctrl";
89*8bab661aSEmmanuel Vadot      reg = <0x01000000 0x300000>;
90*8bab661aSEmmanuel Vadot      interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>;
91*8bab661aSEmmanuel Vadot      gpio-controller;
92*8bab661aSEmmanuel Vadot      gpio-ranges = <&msmgpio 0 0 88>;
93*8bab661aSEmmanuel Vadot      #gpio-cells = <2>;
94*8bab661aSEmmanuel Vadot      interrupt-controller;
95*8bab661aSEmmanuel Vadot      #interrupt-cells = <2>;
96*8bab661aSEmmanuel Vadot
97*8bab661aSEmmanuel Vadot      gsbi3-state {
98*8bab661aSEmmanuel Vadot        pins = "gpio8", "gpio9", "gpio10", "gpio11";
99*8bab661aSEmmanuel Vadot        function = "gsbi3";
100*8bab661aSEmmanuel Vadot        drive-strength = <8>;
101*8bab661aSEmmanuel Vadot        bias-disable;
102*8bab661aSEmmanuel Vadot      };
103*8bab661aSEmmanuel Vadot
104*8bab661aSEmmanuel Vadot      gsbi5-i2c-state {
105*8bab661aSEmmanuel Vadot        sda-pins {
106*8bab661aSEmmanuel Vadot          pins = "gpio16";
107*8bab661aSEmmanuel Vadot          function = "gsbi5_i2c";
108*8bab661aSEmmanuel Vadot          drive-strength = <8>;
109*8bab661aSEmmanuel Vadot          bias-disable;
110*8bab661aSEmmanuel Vadot        };
111*8bab661aSEmmanuel Vadot
112*8bab661aSEmmanuel Vadot        scl-pins {
113*8bab661aSEmmanuel Vadot          pins = "gpio17";
114*8bab661aSEmmanuel Vadot          function = "gsbi5_i2c";
115*8bab661aSEmmanuel Vadot          drive-strength = <2>;
116*8bab661aSEmmanuel Vadot          bias-disable;
117*8bab661aSEmmanuel Vadot        };
118*8bab661aSEmmanuel Vadot      };
119*8bab661aSEmmanuel Vadot    };
120