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
7title: Cirrus Logic Lochnagar Audio Development Board
8
9maintainers:
10  - patches@opensource.cirrus.com
11
12description: |
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
34properties:
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  pinctrl-0:
55    description:
56      A phandle to the default pinctrl state.
57
58  pinctrl-names:
59    description:
60      A pinctrl state named "default" must be defined.
61    const: default
62
63  pin-settings:
64    type: object
65    patternProperties:
66      '-pins$':
67        description:
68          The pin configurations are defined as a child of the pinctrl
69          states node, see [2]. Each sub-node can have the following
70          properties.
71        type: object
72        allOf:
73          - $ref: pincfg-node.yaml#
74          - $ref: pinmux-node.yaml#
75
76        properties:
77          groups:
78            description:
79              A list of groups to select (either this or "pins" must be
80              specified), available groups.
81            enum: [ codec-aif1, codec-aif2, codec-aif3, dsp-aif1,
82                    dsp-aif2, psia1, psia2, gf-aif1, gf-aif2, gf-aif3,
83                    gf-aif4, spdif-aif, usb-aif1, usb-aif2, adat-aif,
84                    soundcard-aif ]
85
86          pins:
87            description:
88              A list of pin names to select (either this or "groups" must
89              be specified), available pins.
90            enum: [ fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4,
91                    fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2,
92                    codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6,
93                    codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2,
94                    dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6,
95                    gf-gpio2, gf-gpio3, gf-gpio7, codec-aif1-bclk,
96                    codec-aif1-rxdat, codec-aif1-lrclk, codec-aif1-txdat,
97                    codec-aif2-bclk, codec-aif2-rxdat, codec-aif2-lrclk,
98                    codec-aif2-txdat, codec-aif3-bclk, codec-aif3-rxdat,
99                    codec-aif3-lrclk, codec-aif3-txdat, dsp-aif1-bclk,
100                    dsp-aif1-rxdat, dsp-aif1-lrclk, dsp-aif1-txdat,
101                    dsp-aif2-bclk, dsp-aif2-rxdat, dsp-aif2-lrclk,
102                    dsp-aif2-txdat, psia1-bclk, psia1-rxdat, psia1-lrclk,
103                    psia1-txdat, psia2-bclk, psia2-rxdat, psia2-lrclk,
104                    psia2-txdat, gf-aif3-bclk, gf-aif3-rxdat,
105                    gf-aif3-lrclk, gf-aif3-txdat, gf-aif4-bclk,
106                    gf-aif4-rxdat, gf-aif4-lrclk, gf-aif4-txdat,
107                    gf-aif1-bclk, gf-aif1-rxdat, gf-aif1-lrclk,
108                    gf-aif1-txdat, gf-aif2-bclk, gf-aif2-rxdat,
109                    gf-aif2-lrclk, gf-aif2-txdat, dsp-uart1-rx,
110                    dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx,
111                    gf-uart2-rx, gf-uart2-tx, usb-uart-rx, codec-pdmclk1,
112                    codec-pdmdat1, codec-pdmclk2, codec-pdmdat2,
113                    codec-dmicclk1, codec-dmicdat1, codec-dmicclk2,
114                    codec-dmicdat2, codec-dmicclk3, codec-dmicdat3,
115                    codec-dmicclk4, codec-dmicdat4, dsp-dmicclk1,
116                    dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, i2c2-scl,
117                    i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda,
118                    dsp-standby, codec-mclk1, codec-mclk2, dsp-clkin,
119                    psia1-mclk, psia2-mclk, gf-gpio1, gf-gpio5,
120                    dsp-gpio20, led1, led2 ]
121
122          function:
123            description:
124              The mux function to select, available functions.
125            enum: [ aif, fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4,
126                    fpga-gpio5, fpga-gpio6, codec-gpio1, codec-gpio2,
127                    codec-gpio3, codec-gpio4, codec-gpio5, codec-gpio6,
128                    codec-gpio7, codec-gpio8, dsp-gpio1, dsp-gpio2,
129                    dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6,
130                    gf-gpio2, gf-gpio3, gf-gpio7, gf-gpio1, gf-gpio5,
131                    dsp-gpio20, codec-clkout, dsp-clkout, pmic-32k,
132                    spdif-clkout, clk-12m288, clk-11m2986, clk-24m576,
133                    clk-22m5792, xmos-mclk, gf-clkout1, gf-mclk1,
134                    gf-mclk3, gf-mclk2, gf-clkout2, codec-mclk1,
135                    codec-mclk2, dsp-clkin, psia1-mclk, psia2-mclk,
136                    spdif-mclk, codec-irq, codec-reset, dsp-reset,
137                    dsp-irq, dsp-standby, codec-pdmclk1, codec-pdmdat1,
138                    codec-pdmclk2, codec-pdmdat2, codec-dmicclk1,
139                    codec-dmicdat1, codec-dmicclk2, codec-dmicdat2,
140                    codec-dmicclk3, codec-dmicdat3, codec-dmicclk4,
141                    codec-dmicdat4, dsp-dmicclk1, dsp-dmicdat1,
142                    dsp-dmicclk2, dsp-dmicdat2, dsp-uart1-rx,
143                    dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx,
144                    gf-uart2-rx, gf-uart2-tx, usb-uart-rx, usb-uart-tx,
145                    i2c2-scl, i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl,
146                    i2c4-sda, spdif-aif, psia1, psia1-bclk, psia1-lrclk,
147                    psia1-rxdat, psia1-txdat, psia2, psia2-bclk,
148                    psia2-lrclk, psia2-rxdat, psia2-txdat, codec-aif1,
149                    codec-aif1-bclk, codec-aif1-lrclk, codec-aif1-rxdat,
150                    codec-aif1-txdat, codec-aif2, codec-aif2-bclk,
151                    codec-aif2-lrclk, codec-aif2-rxdat, codec-aif2-txdat,
152                    codec-aif3, codec-aif3-bclk, codec-aif3-lrclk,
153                    codec-aif3-rxdat, codec-aif3-txdat, dsp-aif1,
154                    dsp-aif1-bclk, dsp-aif1-lrclk, dsp-aif1-rxdat,
155                    dsp-aif1-txdat, dsp-aif2, dsp-aif2-bclk,
156                    dsp-aif2-lrclk, dsp-aif2-rxdat, dsp-aif2-txdat,
157                    gf-aif3, gf-aif3-bclk, gf-aif3-lrclk, gf-aif3-rxdat,
158                    gf-aif3-txdat, gf-aif4, gf-aif4-bclk, gf-aif4-lrclk,
159                    gf-aif4-rxdat, gf-aif4-txdat, gf-aif1, gf-aif1-bclk,
160                    gf-aif1-lrclk, gf-aif1-rxdat, gf-aif1-txdat, gf-aif2,
161                    gf-aif2-bclk, gf-aif2-lrclk, gf-aif2-rxdat,
162                    gf-aif2-txdat, usb-aif1, usb-aif2, adat-aif,
163                    soundcard-aif ]
164
165          output-enable:
166            description:
167              Specifies that an AIF group will be used as a master
168              interface (either this or input-enable is required if a
169              group is being muxed to an AIF)
170
171          input-enable:
172            description:
173              Specifies that an AIF group will be used as a slave
174              interface (either this or output-enable is required if a
175              group is being muxed to an AIF)
176
177        additionalProperties: false
178
179        required:
180          - function
181
182    additionalProperties: false
183
184required:
185  - compatible
186  - gpio-controller
187  - '#gpio-cells'
188  - gpio-ranges
189  - pinctrl-0
190  - pinctrl-names
191