Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * linux/sound/wm2200.h -- Platform data for WM2200
0004  *
0005  * Copyright 2012 Wolfson Microelectronics. PLC.
0006  */
0007 
0008 #ifndef __LINUX_SND_WM2200_H
0009 #define __LINUX_SND_WM2200_H
0010 
0011 #define WM2200_GPIO_SET 0x10000
0012 #define WM2200_MAX_MICBIAS 2
0013 
0014 enum wm2200_in_mode {
0015     WM2200_IN_SE = 0,
0016     WM2200_IN_DIFF = 1,
0017     WM2200_IN_DMIC = 2,
0018 };
0019 
0020 enum wm2200_dmic_sup {
0021     WM2200_DMIC_SUP_MICVDD = 0,
0022     WM2200_DMIC_SUP_MICBIAS1 = 1,
0023     WM2200_DMIC_SUP_MICBIAS2 = 2,
0024 };
0025 
0026 enum wm2200_mbias_lvl {
0027     WM2200_MBIAS_LVL_1V5 = 1,
0028     WM2200_MBIAS_LVL_1V8 = 2,
0029     WM2200_MBIAS_LVL_1V9 = 3,
0030     WM2200_MBIAS_LVL_2V0 = 4,
0031     WM2200_MBIAS_LVL_2V2 = 5,
0032     WM2200_MBIAS_LVL_2V4 = 6,
0033     WM2200_MBIAS_LVL_2V5 = 7,
0034     WM2200_MBIAS_LVL_2V6 = 8,
0035 };
0036 
0037 struct wm2200_micbias {
0038     enum wm2200_mbias_lvl mb_lvl;      /** Regulated voltage */
0039     unsigned int discharge:1;          /** Actively discharge */
0040     unsigned int fast_start:1;         /** Enable aggressive startup ramp rate */
0041     unsigned int bypass:1;             /** Use bypass mode */
0042 };
0043 
0044 struct wm2200_pdata {
0045     int reset;      /** GPIO controlling /RESET, if any */
0046     int ldo_ena;    /** GPIO controlling LODENA, if any */
0047     int irq_flags;
0048 
0049     int gpio_defaults[4];
0050 
0051     enum wm2200_in_mode in_mode[3];
0052     enum wm2200_dmic_sup dmic_sup[3];
0053 
0054     /** MICBIAS configurations */
0055     struct wm2200_micbias micbias[WM2200_MAX_MICBIAS];
0056 };
0057 
0058 #endif