GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / pinctrl / cirrus,lochnagar.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,lochnagar.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Cirrus Logic Lochnagar Audio Development Board
8
9 maintainers:
10   - patches@opensource.cirrus.com
11
12 description: |
13   Lochnagar is an evaluation and development board for Cirrus Logic
14   Smart CODEC and Amp devices. It allows the connection of most Cirrus
15   Logic devices on mini-cards, as well as allowing connection of various
16   application processor systems to provide a full evaluation platform.
17   Audio system topology, clocking and power can all be controlled through
18   the Lochnagar, allowing the device under test to be used in a variety of
19   possible use cases.
20
21   This binding document describes the binding for the pinctrl portion of
22   the driver.
23
24   Also see these documents for generic binding information:
25     [1] GPIO : ../gpio/gpio.txt
26     [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt
27
28   And these for relevant defines:
29     [3] include/dt-bindings/pinctrl/lochnagar.h
30
31   This binding must be part of the Lochnagar MFD binding:
32     [4] ../mfd/cirrus,lochnagar.yaml
33
34 properties:
35   compatible:
36     enum:
37       - cirrus,lochnagar-pinctrl
38
39   gpio-controller: true
40
41   '#gpio-cells':
42     description:
43       The first cell is the pin number and the second cell is used
44       to specify optional parameters.
45     const: 2
46
47   gpio-ranges:
48     description:
49       Range of pins managed by the GPIO controller, see [1]. Both the
50       GPIO and Pinctrl base should be set to zero and the count to the
51       appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define, see [3].
52     maxItems: 1
53
54   pin-settings:
55     type: object
56     patternProperties:
57       '-pins$':
58         description:
59           The pin configurations are defined as a child of the pinctrl
60           states node, see [2]. Each sub-node can have the following
61           properties.
62         type: object
63         allOf:
64           - $ref: pincfg-node.yaml#
65           - $ref: pinmux-node.yaml#
66
67         properties:
68           groups:
69             description:
70               A list of groups to select (either this or "pins" must be
71               specified), available groups.
72             enum: [ codec-aif1, codec-aif2, codec-aif3, dsp-aif1,
73                     dsp-aif2, psia1, psia2, gf-aif1, gf-aif2, gf-aif3,
74                     gf-aif4, spdif-aif, usb-aif1, usb-aif2, adat-aif,
75                     soundcard-aif ]
76
77           pins:
78             description:
79               A list of pin names to select (either this or "groups" must
80               be specified), available pins.
81             enum: [ fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4,
82                     fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2,
83                     codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6,
84                     codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2,
85                     dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6,
86                     gf-gpio2, gf-gpio3, gf-gpio7, codec-aif1-bclk,
87                     codec-aif1-rxdat, codec-aif1-lrclk, codec-aif1-txdat,
88                     codec-aif2-bclk, codec-aif2-rxdat, codec-aif2-lrclk,
89                     codec-aif2-txdat, codec-aif3-bclk, codec-aif3-rxdat,
90                     codec-aif3-lrclk, codec-aif3-txdat, dsp-aif1-bclk,
91                     dsp-aif1-rxdat, dsp-aif1-lrclk, dsp-aif1-txdat,
92                     dsp-aif2-bclk, dsp-aif2-rxdat, dsp-aif2-lrclk,
93                     dsp-aif2-txdat, psia1-bclk, psia1-rxdat, psia1-lrclk,
94                     psia1-txdat, psia2-bclk, psia2-rxdat, psia2-lrclk,
95                     psia2-txdat, gf-aif3-bclk, gf-aif3-rxdat,
96                     gf-aif3-lrclk, gf-aif3-txdat, gf-aif4-bclk,
97                     gf-aif4-rxdat, gf-aif4-lrclk, gf-aif4-txdat,
98                     gf-aif1-bclk, gf-aif1-rxdat, gf-aif1-lrclk,
99                     gf-aif1-txdat, gf-aif2-bclk, gf-aif2-rxdat,
100                     gf-aif2-lrclk, gf-aif2-txdat, dsp-uart1-rx,
101                     dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx,
102                     gf-uart2-rx, gf-uart2-tx, usb-uart-rx, codec-pdmclk1,
103                     codec-pdmdat1, codec-pdmclk2, codec-pdmdat2,
104                     codec-dmicclk1, codec-dmicdat1, codec-dmicclk2,
105                     codec-dmicdat2, codec-dmicclk3, codec-dmicdat3,
106                     codec-dmicclk4, codec-dmicdat4, dsp-dmicclk1,
107                     dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, i2c2-scl,
108                     i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda,
109                     dsp-standby, codec-mclk1, codec-mclk2, dsp-clkin,
110                     psia1-mclk, psia2-mclk, gf-gpio1, gf-gpio5,
111                     dsp-gpio20, led1, led2 ]
112
113           function:
114             description:
115               The mux function to select, available functions.
116             enum: [ aif, fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4,
117                     fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2,
118                     codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6,
119                     codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2,
120                     dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6,
121                     gf-gpio2, gf-gpio3, gf-gpio7, gf-gpio1, gf-gpio5,
122                     dsp-gpio20, codec-clkout, dsp-clkout, pmic-32k,
123                     spdif-clkout, clk-12m288, clk-11m2986, clk-24m576,
124                     clk-22m5792, xmos-mclk, gf-clkout1, gf-mclk1,
125                     gf-mclk3, gf-mclk2, gf-clkout2, codec-mclk1,
126                     codec-mclk2, dsp-clkin, psia1-mclk, psia2-mclk,
127                     spdif-mclk, codec-irq, codec-reset, dsp-reset,
128                     dsp-irq, dsp-standby, codec-pdmclk1, codec-pdmdat1,
129                     codec-pdmclk2, codec-pdmdat2, codec-dmicclk1,
130                     codec-dmicdat1, codec-dmicclk2, codec-dmicdat2,
131                     codec-dmicclk3, codec-dmicdat3, codec-dmicclk4,
132                     codec-dmicdat4, dsp-dmicclk1, dsp-dmicdat1,
133                     dsp-dmicclk2, dsp-dmicdat2, dsp-uart1-rx,
134                     dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx,
135                     gf-uart2-rx, gf-uart2-tx, usb-uart-rx, usb-uart-tx,
136                     i2c2-scl, i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl,
137                     i2c4-sda, spdif-aif, psia1, psia1-bclk, psia1-lrclk,
138                     psia1-rxdat, psia1-txdat, psia2, psia2-bclk,
139                     psia2-lrclk, psia2-rxdat, psia2-txdat, codec-aif1,
140                     codec-aif1-bclk, codec-aif1-lrclk, codec-aif1-rxdat,
141                     codec-aif1-txdat, codec-aif2, codec-aif2-bclk,
142                     codec-aif2-lrclk, codec-aif2-rxdat, codec-aif2-txdat,
143                     codec-aif3, codec-aif3-bclk, codec-aif3-lrclk,
144                     codec-aif3-rxdat, codec-aif3-txdat, dsp-aif1,
145                     dsp-aif1-bclk, dsp-aif1-lrclk, dsp-aif1-rxdat,
146                     dsp-aif1-txdat, dsp-aif2, dsp-aif2-bclk,
147                     dsp-aif2-lrclk, dsp-aif2-rxdat, dsp-aif2-txdat,
148                     gf-aif3, gf-aif3-bclk, gf-aif3-lrclk, gf-aif3-rxdat,
149                     gf-aif3-txdat, gf-aif4, gf-aif4-bclk, gf-aif4-lrclk,
150                     gf-aif4-rxdat, gf-aif4-txdat, gf-aif1, gf-aif1-bclk,
151                     gf-aif1-lrclk, gf-aif1-rxdat, gf-aif1-txdat, gf-aif2,
152                     gf-aif2-bclk, gf-aif2-lrclk, gf-aif2-rxdat,
153                     gf-aif2-txdat, usb-aif1, usb-aif2, adat-aif,
154                     soundcard-aif ]
155
156           output-enable:
157             description:
158               Specifies that an AIF group will be used as a master
159               interface (either this or input-enable is required if a
160               group is being muxed to an AIF)
161
162           input-enable:
163             description:
164               Specifies that an AIF group will be used as a slave
165               interface (either this or output-enable is required if a
166               group is being muxed to an AIF)
167
168         additionalProperties: false
169
170         required:
171           - function
172
173     additionalProperties: false
174
175 allOf:
176   - $ref: "pinctrl.yaml#"
177
178 required:
179   - compatible
180   - gpio-controller
181   - '#gpio-cells'
182   - gpio-ranges
183   - pinctrl-0
184   - pinctrl-names
185
186 additionalProperties: false