1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * linux/sound/wm5100.h -- Platform data for WM5100 4 * 5 * Copyright 2011 Wolfson Microelectronics. PLC. 6 */ 7 8 #ifndef __LINUX_SND_WM5100_H 9 #define __LINUX_SND_WM5100_H 10 11 enum wm5100_in_mode { 12 WM5100_IN_SE = 0, 13 WM5100_IN_DIFF = 1, 14 WM5100_IN_DMIC = 2, 15 }; 16 17 enum wm5100_dmic_sup { 18 WM5100_DMIC_SUP_MICVDD = 0, 19 WM5100_DMIC_SUP_MICBIAS1 = 1, 20 WM5100_DMIC_SUP_MICBIAS2 = 2, 21 WM5100_DMIC_SUP_MICBIAS3 = 3, 22 }; 23 24 enum wm5100_micdet_bias { 25 WM5100_MICDET_MICBIAS1 = 0, 26 WM5100_MICDET_MICBIAS2 = 1, 27 WM5100_MICDET_MICBIAS3 = 2, 28 }; 29 30 struct wm5100_jack_mode { 31 enum wm5100_micdet_bias bias; 32 int hp_pol; 33 int micd_src; 34 }; 35 36 #define WM5100_GPIO_SET 0x10000 37 38 struct wm5100_pdata { 39 int reset; /** GPIO controlling /RESET, if any */ 40 int ldo_ena; /** GPIO controlling LODENA, if any */ 41 int hp_pol; /** GPIO controlling headset polarity, if any */ 42 int irq_flags; 43 int gpio_base; 44 45 struct wm5100_jack_mode jack_modes[2]; 46 47 /* Input pin mode selection */ 48 enum wm5100_in_mode in_mode[4]; 49 50 /* DMIC supply selection */ 51 enum wm5100_dmic_sup dmic_sup[4]; 52 53 int gpio_defaults[6]; 54 }; 55 56 #endif 57