xref: /openbmc/linux/include/sound/wm5100.h (revision d2912cb1)
1d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
26d4baf08SMark Brown /*
36d4baf08SMark Brown  * linux/sound/wm5100.h -- Platform data for WM5100
46d4baf08SMark Brown  *
56d4baf08SMark Brown  * Copyright 2011 Wolfson Microelectronics. PLC.
66d4baf08SMark Brown  */
76d4baf08SMark Brown 
86d4baf08SMark Brown #ifndef __LINUX_SND_WM5100_H
96d4baf08SMark Brown #define __LINUX_SND_WM5100_H
106d4baf08SMark Brown 
116d4baf08SMark Brown enum wm5100_in_mode {
126d4baf08SMark Brown 	WM5100_IN_SE = 0,
136d4baf08SMark Brown 	WM5100_IN_DIFF = 1,
146d4baf08SMark Brown 	WM5100_IN_DMIC = 2,
156d4baf08SMark Brown };
166d4baf08SMark Brown 
176d4baf08SMark Brown enum wm5100_dmic_sup {
186d4baf08SMark Brown 	WM5100_DMIC_SUP_MICVDD = 0,
196d4baf08SMark Brown 	WM5100_DMIC_SUP_MICBIAS1 = 1,
206d4baf08SMark Brown 	WM5100_DMIC_SUP_MICBIAS2 = 2,
216d4baf08SMark Brown 	WM5100_DMIC_SUP_MICBIAS3 = 3,
226d4baf08SMark Brown };
236d4baf08SMark Brown 
246d4baf08SMark Brown enum wm5100_micdet_bias {
256d4baf08SMark Brown 	WM5100_MICDET_MICBIAS1 = 0,
266d4baf08SMark Brown 	WM5100_MICDET_MICBIAS2 = 1,
276d4baf08SMark Brown 	WM5100_MICDET_MICBIAS3 = 2,
286d4baf08SMark Brown };
296d4baf08SMark Brown 
306d4baf08SMark Brown struct wm5100_jack_mode {
316d4baf08SMark Brown 	enum wm5100_micdet_bias bias;
326d4baf08SMark Brown 	int hp_pol;
336d4baf08SMark Brown 	int micd_src;
346d4baf08SMark Brown };
356d4baf08SMark Brown 
366d4baf08SMark Brown #define WM5100_GPIO_SET 0x10000
376d4baf08SMark Brown 
386d4baf08SMark Brown struct wm5100_pdata {
396d4baf08SMark Brown 	int reset;      /** GPIO controlling /RESET, if any */
406d4baf08SMark Brown 	int ldo_ena;    /** GPIO controlling LODENA, if any */
416d4baf08SMark Brown 	int hp_pol;     /** GPIO controlling headset polarity, if any */
426d4baf08SMark Brown 	int irq_flags;
436d4baf08SMark Brown 	int gpio_base;
446d4baf08SMark Brown 
456d4baf08SMark Brown 	struct wm5100_jack_mode jack_modes[2];
466d4baf08SMark Brown 
476d4baf08SMark Brown 	/* Input pin mode selection */
486d4baf08SMark Brown 	enum wm5100_in_mode in_mode[4];
496d4baf08SMark Brown 
506d4baf08SMark Brown 	/* DMIC supply selection */
516d4baf08SMark Brown 	enum wm5100_dmic_sup dmic_sup[4];
526d4baf08SMark Brown 
536d4baf08SMark Brown 	int gpio_defaults[6];
546d4baf08SMark Brown };
556d4baf08SMark Brown 
566d4baf08SMark Brown #endif
57