xref: /openbmc/linux/include/sound/wm8962.h (revision 81d67439)
1 /*
2  * wm8962.h  --  WM8962 Soc Audio driver platform data
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 
9 #ifndef _WM8962_PDATA_H
10 #define _WM8962_PDATA_H
11 
12 #define WM8962_MAX_GPIO 6
13 
14 /* Use to set GPIO default values to zero */
15 #define WM8962_GPIO_SET 0x10000
16 
17 #define WM8962_GPIO_FN_CLKOUT           0
18 #define WM8962_GPIO_FN_LOGIC            1
19 #define WM8962_GPIO_FN_SDOUT            2
20 #define WM8962_GPIO_FN_IRQ              3
21 #define WM8962_GPIO_FN_THERMAL          4
22 #define WM8962_GPIO_FN_PLL2_LOCK        6
23 #define WM8962_GPIO_FN_PLL3_LOCK        7
24 #define WM8962_GPIO_FN_FLL_LOCK         9
25 #define WM8962_GPIO_FN_DRC_ACT         10
26 #define WM8962_GPIO_FN_WSEQ_DONE       11
27 #define WM8962_GPIO_FN_ALC_NG_ACT      12
28 #define WM8962_GPIO_FN_ALC_PEAK_LIMIT  13
29 #define WM8962_GPIO_FN_ALC_SATURATION  14
30 #define WM8962_GPIO_FN_ALC_LEVEL_THR   15
31 #define WM8962_GPIO_FN_ALC_LEVEL_LOCK  16
32 #define WM8962_GPIO_FN_FIFO_ERR        17
33 #define WM8962_GPIO_FN_OPCLK           18
34 #define WM8962_GPIO_FN_DMICCLK         19
35 #define WM8962_GPIO_FN_DMICDAT         20
36 #define WM8962_GPIO_FN_MICD            21
37 #define WM8962_GPIO_FN_MICSCD          22
38 
39 struct wm8962_pdata {
40 	int gpio_base;
41 	u32 gpio_init[WM8962_MAX_GPIO];
42 
43 	/* Setup for microphone detection, raw value to be written to
44 	 * R48(0x30) - only microphone related bits will be updated.
45 	 * Detection may be enabled here for use with signals brought
46 	 * out on the GPIOs. */
47 	u32 mic_cfg;
48 
49 	bool irq_active_low;
50 
51 	bool spk_mono;   /* Speaker outputs tied together as mono */
52 };
53 
54 #endif
55