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