]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/pinctrl/cirrus,madera.yaml
Import DTS from Linux 5.8
[FreeBSD/FreeBSD.git] / Bindings / pinctrl / cirrus,madera.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/cirrus,madera.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Cirrus Logic Madera class audio CODECs pinctrl driver
8
9 maintainers:
10   - patches@opensource.cirrus.com
11
12 description: |
13   The Cirrus Logic Madera codecs provide a number of GPIO functions for
14   interfacing to external hardware and to provide logic outputs to other devices.
15   Certain groups of GPIO pins also have an alternate function, normally as an
16   audio interface.
17
18   The set of available GPIOs, functions and alternate function groups differs
19   between CODECs so refer to the datasheet for the CODEC for further information
20   on what is supported on that device.
21
22   The properties for this driver exist within the parent MFD driver node.
23
24   See also the core bindings for the parent MFD driver:
25
26     Documentation/devicetree/bindings/mfd/cirrus,madera.yaml
27
28   And the generic pinmix bindings:
29
30     Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
31
32 properties:
33   pinctrl-0:
34     description:
35       A phandle to the node containing the subnodes containing default
36       configurations.
37
38   pinctrl-names:
39     description:
40       A pinctrl state named "default" must be defined.
41     const: default
42
43   pin-settings:
44     description:
45       One subnode is required to contain the default settings. It
46       contains an arbitrary number of configuration subnodes, one for
47       each group or pin configuration you want to apply as a default.
48     type: object
49     patternProperties:
50       '-pins$':
51         type: object
52         allOf:
53           - $ref: "pincfg-node.yaml#"
54           - $ref: "pinmux-node.yaml#"
55         properties:
56           groups:
57             description:
58               Name of one pin group to configure.
59             enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1,
60                     pdmspk2, dmic4, dmic5, dmic6, gpio1, gpio2, gpio3,
61                     gpio4, gpio5, gpio6, gpio7, gpio7, gpio8, gpio9,
62                     gpio10, gpio11, gpio12, gpio13, gpio14, gpio15,
63                     gpio16, gpio17, gpio17, gpio18, gpio19, gpio20,
64                     gpio21, gpio22, gpio23, gpio24, gpio25, gpio26,
65                     gpio27, gpio27, gpio28, gpio29, gpio30, gpio31,
66                     gpio32, gpio33, gpio34, gpio35, gpio36, gpio37,
67                     gpio37, gpio38, gpio39 ]
68
69           function:
70             description:
71               Name of function to assign to this group.
72             enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3,
73                     pdmspk1, pdmspk2, dmic3, dmic4, dmic5,
74                     dmic6, io, dsp-gpio, irq1, irq2, fll1-clk,
75                     fll1-lock, fll2-clk, fll2-lock, fll3-clk,
76                     fll3-lock, fllao-clk, fllao-lock, opclk,
77                     opclk-async, pwm1, pwm2, spdif, asrc1-in1-lock,
78                     asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock,
79                     spkl-short-circuit, spkr-short-circuit,
80                     spk-shutdown, spk-overheat-shutdown,
81                     spk-overheat-warn, timer1-sts, timer2-sts,
82                     timer3-sts, timer4-sts, timer5-sts, timer6-sts,
83                     timer7-sts, timer8-sts, log1-fifo-ne,
84                     log2-fifo-ne, log3-fifo-ne, log4-fifo-ne,
85                     log5-fifo-ne, log6-fifo-ne, log7-fifo-ne,
86                     log8-fifo-ne ]
87
88           bias-disable: true
89
90           bias-bus-hold: true
91
92           bias-pull-up: true
93
94           bias-pull-down: true
95
96           drive-push-pull: true
97
98           drive-open-drain: true
99
100           drive-strength:
101             enum: [ 4, 8 ]
102
103           input-schmitt-enable: true
104
105           input-schmitt-disable: true
106
107           input-debounce: true
108
109           output-low: true
110
111           output-high: true
112
113         additionalProperties: false
114
115         required:
116           - groups
117
118     additionalProperties: false
119
120 required:
121   - pinctrl-0
122   - pinctrl-names