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 	struct clk *mclk;
41 	int gpio_base;
42 	u32 gpio_init[WM8962_MAX_GPIO];
43 
44 	/* Setup for microphone detection, raw value to be written to
45 	 * R48(0x30) - only microphone related bits will be updated.
46 	 * Detection may be enabled here for use with signals brought
47 	 * out on the GPIOs. */
48 	u32 mic_cfg;
49 
50 	bool irq_active_low;
51 
52 	bool spk_mono;   /* Speaker outputs tied together as mono */
53 
54 	/**
55 	 * This flag should be set if one or both IN4 inputs is wired
56 	 * in a DC measurement configuration.
57 	 */
58 	bool in4_dc_measure;
59 };
60 
61 #endif
62