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
7title: Cirrus Logic Madera class audio CODECs pinctrl driver
8
9maintainers:
10  - patches@opensource.cirrus.com
11
12description: |
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
32properties:
33  pin-settings:
34    description:
35      One subnode is required to contain the default settings. It
36      contains an arbitrary number of configuration subnodes, one for
37      each group or pin configuration you want to apply as a default.
38    type: object
39    patternProperties:
40      '-pins$':
41        type: object
42        allOf:
43          - $ref: "pincfg-node.yaml#"
44          - $ref: "pinmux-node.yaml#"
45        properties:
46          groups:
47            description:
48              Name of one pin group to configure.
49            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3, pdmspk1,
50                    pdmspk2, dmic4, dmic5, dmic6, gpio1, gpio2, gpio3,
51                    gpio4, gpio5, gpio6, gpio7, gpio7, gpio8, gpio9,
52                    gpio10, gpio11, gpio12, gpio13, gpio14, gpio15,
53                    gpio16, gpio17, gpio17, gpio18, gpio19, gpio20,
54                    gpio21, gpio22, gpio23, gpio24, gpio25, gpio26,
55                    gpio27, gpio27, gpio28, gpio29, gpio30, gpio31,
56                    gpio32, gpio33, gpio34, gpio35, gpio36, gpio37,
57                    gpio37, gpio38, gpio39 ]
58
59          function:
60            description:
61              Name of function to assign to this group.
62            enum: [ aif1, aif2, aif3, aif4, mif1, mif2, mif3,
63                    pdmspk1, pdmspk2, dmic3, dmic4, dmic5,
64                    dmic6, io, dsp-gpio, irq1, irq2, fll1-clk,
65                    fll1-lock, fll2-clk, fll2-lock, fll3-clk,
66                    fll3-lock, fllao-clk, fllao-lock, opclk,
67                    opclk-async, pwm1, pwm2, spdif, asrc1-in1-lock,
68                    asrc1-in2-lock, asrc2-in1-lock, asrc2-in2-lock,
69                    spkl-short-circuit, spkr-short-circuit,
70                    spk-shutdown, spk-overheat-shutdown,
71                    spk-overheat-warn, timer1-sts, timer2-sts,
72                    timer3-sts, timer4-sts, timer5-sts, timer6-sts,
73                    timer7-sts, timer8-sts, log1-fifo-ne,
74                    log2-fifo-ne, log3-fifo-ne, log4-fifo-ne,
75                    log5-fifo-ne, log6-fifo-ne, log7-fifo-ne,
76                    log8-fifo-ne ]
77
78          bias-disable: true
79
80          bias-bus-hold: true
81
82          bias-pull-up: true
83
84          bias-pull-down: true
85
86          drive-push-pull: true
87
88          drive-open-drain: true
89
90          drive-strength:
91            enum: [ 4, 8 ]
92
93          input-schmitt-enable: true
94
95          input-schmitt-disable: true
96
97          input-debounce: true
98
99          output-low: true
100
101          output-high: true
102
103        additionalProperties: false
104
105        required:
106          - groups
107
108    additionalProperties: false
109
110allOf:
111  - $ref: "pinctrl.yaml#"
112
113required:
114  - pinctrl-0
115  - pinctrl-names
116
117additionalProperties: true
118