xref: /OK3568_Linux_fs/kernel/include/sound/wm8962.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * wm8962.h  --  WM8962 Soc Audio driver platform data
4*4882a593Smuzhiyun  */
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #ifndef _WM8962_PDATA_H
7*4882a593Smuzhiyun #define _WM8962_PDATA_H
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #define WM8962_MAX_GPIO 6
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun /* Use to set GPIO default values to zero */
12*4882a593Smuzhiyun #define WM8962_GPIO_SET 0x10000
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun #define WM8962_GPIO_FN_CLKOUT           0
15*4882a593Smuzhiyun #define WM8962_GPIO_FN_LOGIC            1
16*4882a593Smuzhiyun #define WM8962_GPIO_FN_SDOUT            2
17*4882a593Smuzhiyun #define WM8962_GPIO_FN_IRQ              3
18*4882a593Smuzhiyun #define WM8962_GPIO_FN_THERMAL          4
19*4882a593Smuzhiyun #define WM8962_GPIO_FN_PLL2_LOCK        6
20*4882a593Smuzhiyun #define WM8962_GPIO_FN_PLL3_LOCK        7
21*4882a593Smuzhiyun #define WM8962_GPIO_FN_FLL_LOCK         9
22*4882a593Smuzhiyun #define WM8962_GPIO_FN_DRC_ACT         10
23*4882a593Smuzhiyun #define WM8962_GPIO_FN_WSEQ_DONE       11
24*4882a593Smuzhiyun #define WM8962_GPIO_FN_ALC_NG_ACT      12
25*4882a593Smuzhiyun #define WM8962_GPIO_FN_ALC_PEAK_LIMIT  13
26*4882a593Smuzhiyun #define WM8962_GPIO_FN_ALC_SATURATION  14
27*4882a593Smuzhiyun #define WM8962_GPIO_FN_ALC_LEVEL_THR   15
28*4882a593Smuzhiyun #define WM8962_GPIO_FN_ALC_LEVEL_LOCK  16
29*4882a593Smuzhiyun #define WM8962_GPIO_FN_FIFO_ERR        17
30*4882a593Smuzhiyun #define WM8962_GPIO_FN_OPCLK           18
31*4882a593Smuzhiyun #define WM8962_GPIO_FN_DMICCLK         19
32*4882a593Smuzhiyun #define WM8962_GPIO_FN_DMICDAT         20
33*4882a593Smuzhiyun #define WM8962_GPIO_FN_MICD            21
34*4882a593Smuzhiyun #define WM8962_GPIO_FN_MICSCD          22
35*4882a593Smuzhiyun 
36*4882a593Smuzhiyun struct wm8962_pdata {
37*4882a593Smuzhiyun 	struct clk *mclk;
38*4882a593Smuzhiyun 	int gpio_base;
39*4882a593Smuzhiyun 	u32 gpio_init[WM8962_MAX_GPIO];
40*4882a593Smuzhiyun 
41*4882a593Smuzhiyun 	/* Setup for microphone detection, raw value to be written to
42*4882a593Smuzhiyun 	 * R48(0x30) - only microphone related bits will be updated.
43*4882a593Smuzhiyun 	 * Detection may be enabled here for use with signals brought
44*4882a593Smuzhiyun 	 * out on the GPIOs. */
45*4882a593Smuzhiyun 	u32 mic_cfg;
46*4882a593Smuzhiyun 
47*4882a593Smuzhiyun 	bool irq_active_low;
48*4882a593Smuzhiyun 
49*4882a593Smuzhiyun 	bool spk_mono;   /* Speaker outputs tied together as mono */
50*4882a593Smuzhiyun 
51*4882a593Smuzhiyun 	/**
52*4882a593Smuzhiyun 	 * This flag should be set if one or both IN4 inputs is wired
53*4882a593Smuzhiyun 	 * in a DC measurement configuration.
54*4882a593Smuzhiyun 	 */
55*4882a593Smuzhiyun 	bool in4_dc_measure;
56*4882a593Smuzhiyun };
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun #endif
59