blob: f777225732f8895184812f28a42afb07226b4989 [file] [log] [blame]
Thomas Gleixnerd2912cb2019-06-04 10:11:33 +02001/* SPDX-License-Identifier: GPL-2.0-only */
Mark Brown9a76f1f2010-08-05 13:20:59 +01002/*
3 * wm8962.h -- WM8962 Soc Audio driver platform data
Mark Brown9a76f1f2010-08-05 13:20:59 +01004 */
5
6#ifndef _WM8962_PDATA_H
7#define _WM8962_PDATA_H
8
9#define WM8962_MAX_GPIO 6
10
11/* Use to set GPIO default values to zero */
12#define WM8962_GPIO_SET 0x10000
13
Mark Brown7cd873c2011-04-25 20:01:42 +010014#define WM8962_GPIO_FN_CLKOUT 0
15#define WM8962_GPIO_FN_LOGIC 1
16#define WM8962_GPIO_FN_SDOUT 2
17#define WM8962_GPIO_FN_IRQ 3
18#define WM8962_GPIO_FN_THERMAL 4
19#define WM8962_GPIO_FN_PLL2_LOCK 6
20#define WM8962_GPIO_FN_PLL3_LOCK 7
21#define WM8962_GPIO_FN_FLL_LOCK 9
22#define WM8962_GPIO_FN_DRC_ACT 10
23#define WM8962_GPIO_FN_WSEQ_DONE 11
24#define WM8962_GPIO_FN_ALC_NG_ACT 12
25#define WM8962_GPIO_FN_ALC_PEAK_LIMIT 13
26#define WM8962_GPIO_FN_ALC_SATURATION 14
27#define WM8962_GPIO_FN_ALC_LEVEL_THR 15
28#define WM8962_GPIO_FN_ALC_LEVEL_LOCK 16
29#define WM8962_GPIO_FN_FIFO_ERR 17
30#define WM8962_GPIO_FN_OPCLK 18
31#define WM8962_GPIO_FN_DMICCLK 19
32#define WM8962_GPIO_FN_DMICDAT 20
33#define WM8962_GPIO_FN_MICD 21
34#define WM8962_GPIO_FN_MICSCD 22
35
Mark Brown9a76f1f2010-08-05 13:20:59 +010036struct wm8962_pdata {
Nicolin Chend7821952014-07-29 18:38:39 +080037 struct clk *mclk;
Mark Brown3367b8d2010-09-20 17:34:58 +010038 int gpio_base;
Mark Brown9a76f1f2010-08-05 13:20:59 +010039 u32 gpio_init[WM8962_MAX_GPIO];
40
Mark Browna4f28c02010-09-29 13:24:35 -070041 /* Setup for microphone detection, raw value to be written to
42 * R48(0x30) - only microphone related bits will be updated.
43 * Detection may be enabled here for use with signals brought
44 * out on the GPIOs. */
45 u32 mic_cfg;
46
Mark Brown45e65502010-09-28 16:01:20 -070047 bool irq_active_low;
48
Mark Brown9a76f1f2010-08-05 13:20:59 +010049 bool spk_mono; /* Speaker outputs tied together as mono */
Mark Brown182c51c2012-01-24 21:07:55 +000050
51 /**
52 * This flag should be set if one or both IN4 inputs is wired
53 * in a DC measurement configuration.
54 */
55 bool in4_dc_measure;
Mark Brown9a76f1f2010-08-05 13:20:59 +010056};
57
58#endif