Linux-libre 5.7.6-gnu
[librecmc/linux-libre.git] / Documentation / devicetree / bindings / pinctrl / cirrus,lochnagar.txt
1 Cirrus Logic Lochnagar Audio Development Board
2
3 Lochnagar is an evaluation and development board for Cirrus Logic
4 Smart CODEC and Amp devices. It allows the connection of most Cirrus
5 Logic devices on mini-cards, as well as allowing connection of
6 various application processor systems to provide a full evaluation
7 platform.  Audio system topology, clocking and power can all be
8 controlled through the Lochnagar, allowing the device under test
9 to be used in a variety of possible use cases.
10
11 This binding document describes the binding for the pinctrl portion
12 of the driver.
13
14 Also see these documents for generic binding information:
15   [1] GPIO : ../gpio/gpio.txt
16   [2] Pinctrl: ../pinctrl/pinctrl-bindings.txt
17
18 And these for relevant defines:
19   [3] include/dt-bindings/pinctrl/lochnagar.h
20
21 This binding must be part of the Lochnagar MFD binding:
22   [4] ../mfd/cirrus,lochnagar.txt
23
24 Required properties:
25
26   - compatible : One of the following strings:
27                  "cirrus,lochnagar-pinctrl"
28
29   - gpio-controller : Indicates this device is a GPIO controller.
30   - #gpio-cells : Must be 2. The first cell is the pin number, see
31     [3] for available pins and the second cell is used to specify
32     optional parameters, see [1].
33   - gpio-ranges : Range of pins managed by the GPIO controller, see
34     [1]. Both the GPIO and Pinctrl base should be set to zero and the
35     count to the appropriate of the LOCHNAGARx_PIN_NUM_GPIOS define,
36     see [3].
37
38   - pinctrl-names : A pinctrl state named "default" must be defined.
39   - pinctrl-0 : A phandle to the default pinctrl state.
40
41 Required sub-nodes:
42
43 The pin configurations are defined as a child of the pinctrl states
44 node, see [2]. Each sub-node can have the following properties:
45   - groups : A list of groups to select (either this or "pins" must be
46     specified), available groups:
47       codec-aif1, codec-aif2, codec-aif3, dsp-aif1, dsp-aif2, psia1,
48       psia2, gf-aif1, gf-aif2, gf-aif3, gf-aif4, spdif-aif, usb-aif1,
49       usb-aif2, adat-aif, soundcard-aif
50   - pins : A list of pin names to select (either this or "groups" must
51     be specified), available pins:
52       fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, fpga-gpio5,
53       fpga-gpio6, codec-gpio1, codec-gpio2, codec-gpio3, codec-gpio4,
54       codec-gpio5, codec-gpio6, codec-gpio7, codec-gpio8, dsp-gpio1,
55       dsp-gpio2, dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, gf-gpio2,
56       gf-gpio3, gf-gpio7, codec-aif1-bclk, codec-aif1-rxdat,
57       codec-aif1-lrclk, codec-aif1-txdat, codec-aif2-bclk,
58       codec-aif2-rxdat, codec-aif2-lrclk, codec-aif2-txdat,
59       codec-aif3-bclk, codec-aif3-rxdat, codec-aif3-lrclk,
60       codec-aif3-txdat, dsp-aif1-bclk, dsp-aif1-rxdat, dsp-aif1-lrclk,
61       dsp-aif1-txdat, dsp-aif2-bclk, dsp-aif2-rxdat,
62       dsp-aif2-lrclk, dsp-aif2-txdat, psia1-bclk, psia1-rxdat,
63       psia1-lrclk, psia1-txdat, psia2-bclk, psia2-rxdat, psia2-lrclk,
64       psia2-txdat, gf-aif3-bclk, gf-aif3-rxdat, gf-aif3-lrclk,
65       gf-aif3-txdat, gf-aif4-bclk, gf-aif4-rxdat, gf-aif4-lrclk,
66       gf-aif4-txdat, gf-aif1-bclk, gf-aif1-rxdat, gf-aif1-lrclk,
67       gf-aif1-txdat, gf-aif2-bclk, gf-aif2-rxdat, gf-aif2-lrclk,
68       gf-aif2-txdat, dsp-uart1-rx, dsp-uart1-tx, dsp-uart2-rx,
69       dsp-uart2-tx, gf-uart2-rx, gf-uart2-tx, usb-uart-rx,
70       codec-pdmclk1, codec-pdmdat1, codec-pdmclk2, codec-pdmdat2,
71       codec-dmicclk1, codec-dmicdat1, codec-dmicclk2, codec-dmicdat2,
72       codec-dmicclk3, codec-dmicdat3, codec-dmicclk4, codec-dmicdat4,
73       dsp-dmicclk1, dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, i2c2-scl,
74       i2c2-sda, i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda, dsp-standby,
75       codec-mclk1, codec-mclk2, dsp-clkin, psia1-mclk, psia2-mclk,
76       gf-gpio1, gf-gpio5, dsp-gpio20, led1, led2
77   - function : The mux function to select, available functions:
78       aif, fpga-gpio1, fpga-gpio2, fpga-gpio3, fpga-gpio4, fpga-gpio5,
79       fpga-gpio6, codec-gpio1, codec-gpio2, codec-gpio3, codec-gpio4,
80       codec-gpio5, codec-gpio6, codec-gpio7, codec-gpio8, dsp-gpio1,
81       dsp-gpio2, dsp-gpio3, dsp-gpio4, dsp-gpio5, dsp-gpio6, gf-gpio2,
82       gf-gpio3, gf-gpio7, gf-gpio1, gf-gpio5, dsp-gpio20, codec-clkout,
83       dsp-clkout, pmic-32k, spdif-clkout, clk-12m288, clk-11m2986,
84       clk-24m576, clk-22m5792, xmos-mclk, gf-clkout1, gf-mclk1,
85       gf-mclk3, gf-mclk2, gf-clkout2, codec-mclk1, codec-mclk2,
86       dsp-clkin, psia1-mclk, psia2-mclk, spdif-mclk, codec-irq,
87       codec-reset, dsp-reset, dsp-irq, dsp-standby, codec-pdmclk1,
88       codec-pdmdat1, codec-pdmclk2, codec-pdmdat2, codec-dmicclk1,
89       codec-dmicdat1, codec-dmicclk2, codec-dmicdat2, codec-dmicclk3,
90       codec-dmicdat3, codec-dmicclk4, codec-dmicdat4, dsp-dmicclk1,
91       dsp-dmicdat1, dsp-dmicclk2, dsp-dmicdat2, dsp-uart1-rx,
92       dsp-uart1-tx, dsp-uart2-rx, dsp-uart2-tx, gf-uart2-rx,
93       gf-uart2-tx, usb-uart-rx, usb-uart-tx, i2c2-scl, i2c2-sda,
94       i2c3-scl, i2c3-sda, i2c4-scl, i2c4-sda, spdif-aif, psia1,
95       psia1-bclk, psia1-lrclk, psia1-rxdat, psia1-txdat, psia2,
96       psia2-bclk, psia2-lrclk, psia2-rxdat, psia2-txdat, codec-aif1,
97       codec-aif1-bclk, codec-aif1-lrclk, codec-aif1-rxdat,
98       codec-aif1-txdat, codec-aif2, codec-aif2-bclk, codec-aif2-lrclk,
99       codec-aif2-rxdat, codec-aif2-txdat, codec-aif3, codec-aif3-bclk,
100       codec-aif3-lrclk, codec-aif3-rxdat, codec-aif3-txdat, dsp-aif1,
101       dsp-aif1-bclk, dsp-aif1-lrclk, dsp-aif1-rxdat, dsp-aif1-txdat,
102       dsp-aif2, dsp-aif2-bclk, dsp-aif2-lrclk, dsp-aif2-rxdat,
103       dsp-aif2-txdat, gf-aif3, gf-aif3-bclk, gf-aif3-lrclk,
104       gf-aif3-rxdat, gf-aif3-txdat, gf-aif4, gf-aif4-bclk,
105       gf-aif4-lrclk, gf-aif4-rxdat, gf-aif4-txdat, gf-aif1,
106       gf-aif1-bclk, gf-aif1-lrclk, gf-aif1-rxdat, gf-aif1-txdat,
107       gf-aif2, gf-aif2-bclk, gf-aif2-lrclk, gf-aif2-rxdat,
108       gf-aif2-txdat, usb-aif1, usb-aif2, adat-aif, soundcard-aif,
109
110   - output-enable : Specifies that an AIF group will be used as a master
111     interface (either this or input-enable is required if a group is
112     being muxed to an AIF)
113   - input-enable : Specifies that an AIF group will be used as a slave
114     interface (either this or output-enable is required if a group is
115     being muxed to an AIF)
116
117 Example:
118
119 lochnagar-pinctrl {
120         compatible = "cirrus,lochnagar-pinctrl";
121
122         gpio-controller;
123         #gpio-cells = <2>;
124         gpio-ranges = <&lochnagar 0 0 LOCHNAGAR2_PIN_NUM_GPIOS>;
125
126         pinctrl-names = "default";
127         pinctrl-0 = <&pin-settings>;
128
129         pin-settings: pin-settings {
130                 ap-aif {
131                         input-enable;
132                         groups = "gf-aif1";
133                         function = "codec-aif3";
134                 };
135                 codec-aif {
136                         output-enable;
137                         groups = "codec-aif3";
138                         function = "gf-aif1";
139                 };
140         };
141 };