xref: /openbmc/linux/include/sound/wm5100.h (revision 60772e48)
1 /*
2  * linux/sound/wm5100.h -- Platform data for WM5100
3  *
4  * Copyright 2011 Wolfson Microelectronics. PLC.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation.
9  */
10 
11 #ifndef __LINUX_SND_WM5100_H
12 #define __LINUX_SND_WM5100_H
13 
14 enum wm5100_in_mode {
15 	WM5100_IN_SE = 0,
16 	WM5100_IN_DIFF = 1,
17 	WM5100_IN_DMIC = 2,
18 };
19 
20 enum wm5100_dmic_sup {
21 	WM5100_DMIC_SUP_MICVDD = 0,
22 	WM5100_DMIC_SUP_MICBIAS1 = 1,
23 	WM5100_DMIC_SUP_MICBIAS2 = 2,
24 	WM5100_DMIC_SUP_MICBIAS3 = 3,
25 };
26 
27 enum wm5100_micdet_bias {
28 	WM5100_MICDET_MICBIAS1 = 0,
29 	WM5100_MICDET_MICBIAS2 = 1,
30 	WM5100_MICDET_MICBIAS3 = 2,
31 };
32 
33 struct wm5100_jack_mode {
34 	enum wm5100_micdet_bias bias;
35 	int hp_pol;
36 	int micd_src;
37 };
38 
39 #define WM5100_GPIO_SET 0x10000
40 
41 struct wm5100_pdata {
42 	int reset;      /** GPIO controlling /RESET, if any */
43 	int ldo_ena;    /** GPIO controlling LODENA, if any */
44 	int hp_pol;     /** GPIO controlling headset polarity, if any */
45 	int irq_flags;
46 	int gpio_base;
47 
48 	struct wm5100_jack_mode jack_modes[2];
49 
50 	/* Input pin mode selection */
51 	enum wm5100_in_mode in_mode[4];
52 
53 	/* DMIC supply selection */
54 	enum wm5100_dmic_sup dmic_sup[4];
55 
56 	int gpio_defaults[6];
57 };
58 
59 #endif
60