xref: /freebsd/sys/contrib/device-tree/Bindings/pinctrl/cirrus,lochnagar.yaml (revision d5b0e70f7e04d971691517ce1304d86a1e367e2e)
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  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
175allOf:
176  - $ref: "pinctrl.yaml#"
177
178required:
179  - compatible
180  - gpio-controller
181  - '#gpio-cells'
182  - gpio-ranges
183  - pinctrl-0
184  - pinctrl-names
185
186additionalProperties: false
187