xref: /linux/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pinctrl/qcom,tlmm-common.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Technologies, Inc. Top Level Mode Multiplexer (TLMM) definitions
8
9maintainers:
10  - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12description:
13  This defines the common properties used to describe all Qualcomm Top Level
14  Mode Multiplexer bindings and pinconf/pinmux states for these.
15
16properties:
17  interrupts:
18    description:
19      TLMM summary IRQ and dirconn interrupts.
20    minItems: 1
21    maxItems: 9
22
23  interrupt-controller: true
24
25  '#interrupt-cells':
26    description:
27      Specifies the PIN numbers and Flags, as defined in defined in
28      include/dt-bindings/interrupt-controller/irq.h
29    const: 2
30
31  gpio-controller: true
32
33  '#gpio-cells':
34    description:
35      Specifying the pin number and flags, as defined in
36      include/dt-bindings/gpio/gpio.h
37    const: 2
38
39  gpio-ranges:
40    maxItems: 1
41
42  wakeup-parent:
43    description:
44      Specifying the interrupt-controller used to wake up the system when the
45      TLMM block has been powered down.
46
47  gpio-reserved-ranges:
48    description:
49      Pins can be reserved for trusted applications and thereby unaccessible
50      from the OS.  This property can be used to mark the pins which resources
51      should not be accessed by the OS. Please see the ../gpio/gpio.txt for more
52      information.
53
54patternProperties:
55  "-hog(-[0-9]+)?$":
56    type: object
57    required:
58      - gpio-hog
59
60allOf:
61  - $ref: pinctrl.yaml#
62
63required:
64  - interrupts
65  - interrupt-controller
66  - '#interrupt-cells'
67  - gpio-controller
68  - '#gpio-cells'
69  - gpio-ranges
70
71additionalProperties: true
72
73$defs:
74  qcom-tlmm-state:
75    properties:
76      drive-strength:
77        enum: [2, 4, 6, 8, 10, 12, 14, 16]
78        description:
79          Selects the drive strength for the specified pins, in mA.
80
81      bias-pull-down: true
82      bias-pull-up: true
83      bias-disable: true
84      input-enable: false
85      output-disable: true
86      output-enable: true
87      output-high: true
88      output-low: true
89
90    allOf:
91      - $ref: pincfg-node.yaml#
92      - $ref: pinmux-node.yaml#
93
94      - if:
95          properties:
96            pins:
97              items:
98                pattern: "^gpio"
99        then:
100          required:
101            - function
102        else:
103          properties:
104            function: false
105
106    additionalProperties: true
107...
108