Linux 6.9-rc1
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / pinctrl / qcom,tlmm-common.yaml
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
7 title: Qualcomm Technologies, Inc. Top Level Mode Multiplexer (TLMM) definitions
8
9 maintainers:
10   - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12 description:
13   This defines the common properties used to describe all Qualcomm Top Level
14   Mode Multiplexer bindings and pinconf/pinmux states for these.
15
16 properties:
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
54 allOf:
55   - $ref: pinctrl.yaml#
56
57 required:
58   - interrupts
59   - interrupt-controller
60   - '#interrupt-cells'
61   - gpio-controller
62   - '#gpio-cells'
63   - gpio-ranges
64
65 additionalProperties: true
66
67 $defs:
68   qcom-tlmm-state:
69     properties:
70       drive-strength:
71         enum: [2, 4, 6, 8, 10, 12, 14, 16]
72         description:
73           Selects the drive strength for the specified pins, in mA.
74
75       bias-pull-down: true
76       bias-pull-up: true
77       bias-disable: true
78       input-enable: false
79       output-disable: true
80       output-enable: true
81       output-high: true
82       output-low: true
83
84     allOf:
85       - $ref: pincfg-node.yaml#
86       - $ref: pinmux-node.yaml#
87
88       - if:
89           properties:
90             pins:
91               items:
92                 pattern: "^gpio"
93         then:
94           required:
95             - function
96         else:
97           properties:
98             function: false
99
100     additionalProperties: true
101 ...