1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /*
3  * cs35l45.h -- CS35L45 ALSA SoC audio driver DT bindings header
4  *
5  * Copyright 2022 Cirrus Logic, Inc.
6  */
7 
8 #ifndef DT_CS35L45_H
9 #define DT_CS35L45_H
10 
11 /*
12  * cirrus,asp-sdout-hiz-ctrl
13  *
14  * TX_HIZ_UNUSED:   TX pin high-impedance during unused slots.
15  * TX_HIZ_DISABLED: TX pin high-impedance when all channels disabled.
16  */
17 #define CS35L45_ASP_TX_HIZ_UNUSED	0x1
18 #define CS35L45_ASP_TX_HIZ_DISABLED	0x2
19 
20 /*
21  * Optional GPIOX Sub-nodes:
22  *  The cs35l45 node can have up to three "cirrus,gpio-ctrlX" ('X' = [1,2,3])
23  *  sub-nodes for configuring the GPIO pins.
24  *
25  * - gpio-dir : GPIO pin direction. Valid only when 'gpio-ctrl'
26  *   is 1.
27  *    0 = Output
28  *    1 = Input (Default)
29  *
30  * - gpio-lvl : GPIO level. Valid only when 'gpio-ctrl' is 1 and 'gpio-dir' is 0.
31  *
32  *    0 = Low (Default)
33  *    1 = High
34  *
35  * - gpio-op-cfg : GPIO output configuration. Valid only when 'gpio-ctrl' is 1
36  *   and 'gpio-dir' is 0.
37  *
38  *    0 = CMOS (Default)
39  *    1 = Open Drain
40  *
41  * - gpio-pol : GPIO output polarity select. Valid only when 'gpio-ctrl' is 1
42  *   and 'gpio-dir' is 0.
43  *
44  *    0 = Non-inverted, Active High (Default)
45  *    1 = Inverted, Active Low
46  *
47  * - gpio-invert : Defines the polarity of the GPIO pin if configured
48  *   as input.
49  *
50  *    0 = Not inverted (Default)
51  *    1 = Inverted
52  *
53  * - gpio-ctrl : Defines the function of the GPIO pin.
54  *
55  * GPIO1:
56  *   0 = High impedance input (Default)
57  *   1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
58  *   2 = Pin acts as MDSYNC, direction controlled by MDSYNC
59  *   3-7 = Reserved
60  *
61  * GPIO2:
62  *   0 = High impedance input (Default)
63  *   1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
64  *   2 = Pin acts as open drain INT
65  *   3 = Reserved
66  *   4 = Pin acts as push-pull output INT. Active low.
67  *   5 = Pin acts as push-pull output INT. Active high.
68  *   6,7 = Reserved
69  *
70  * GPIO3:
71  *   0 = High impedance input (Default)
72  *   1 = Pin acts as a GPIO, direction controlled by 'gpio-dir'
73  *   2-7 = Reserved
74  */
75 #define CS35L45_NUM_GPIOS	0x3
76 
77 #endif /* DT_CS35L45_H */
78