2019-06-04 11:11:33 +03:00
/* SPDX-License-Identifier: GPL-2.0-only */
2011-02-08 17:09:41 +03:00
/*
2011-06-24 15:10:44 +04:00
* linux / sound / wm8996 . h - - Platform data for WM8996
2011-02-08 17:09:41 +03:00
*
* Copyright 2011 Wolfson Microelectronics . PLC .
*/
2011-06-24 15:10:44 +04:00
# ifndef __LINUX_SND_WM8996_H
# define __LINUX_SND_WM8996_H
2011-02-08 17:09:41 +03:00
2011-06-24 15:10:44 +04:00
enum wm8996_inmode {
WM8996_DIFFERRENTIAL_1 = 0 , /* IN1xP - IN1xN */
WM8996_INVERTING = 1 , /* IN1xN */
WM8996_NON_INVERTING = 2 , /* IN1xP */
WM8996_DIFFERENTIAL_2 = 3 , /* IN2xP - IN2xP */
2011-02-08 17:09:41 +03:00
} ;
/**
* ReTune Mobile configurations are specified with a label , sample
* rate and set of values to write ( the enable bits will be ignored ) .
*
* Configurations are expected to be generated using the ReTune Mobile
* control panel in WISCE - see http : //www.wolfsonmicro.com/wisce/
*/
2011-06-24 15:10:44 +04:00
struct wm8996_retune_mobile_config {
2011-02-08 17:09:41 +03:00
const char * name ;
int rate ;
u16 regs [ 20 ] ;
} ;
2011-06-24 15:10:44 +04:00
# define WM8996_SET_DEFAULT 0x10000
2011-02-08 17:09:41 +03:00
2011-06-24 15:10:44 +04:00
struct wm8996_pdata {
2011-02-08 17:09:41 +03:00
int irq_flags ; /** Set IRQ trigger flags; default active low */
int ldo_ena ; /** GPIO for LDO1; -1 for none */
int micdet_def ; /** Default MICDET_SRC/HP1FB_SRC/MICD_BIAS */
2011-06-24 15:10:44 +04:00
enum wm8996_inmode inl_mode ;
enum wm8996_inmode inr_mode ;
2011-02-08 17:09:41 +03:00
u32 spkmute_seq ; /** Value for register 0x802 */
int gpio_base ;
u32 gpio_default [ 5 ] ;
int num_retune_mobile_cfgs ;
2011-06-24 15:10:44 +04:00
struct wm8996_retune_mobile_config * retune_mobile_cfgs ;
2011-02-08 17:09:41 +03:00
} ;
# endif