1/* SPDX-License-Identifier: GPL-2.0-only */
2/*
3 * wm8962.h  --  WM8962 Soc Audio driver platform data
4 */
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
14#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
36struct wm8962_pdata {
37	struct clk *mclk;
38	int gpio_base;
39	u32 gpio_init[WM8962_MAX_GPIO];
40
41	/* 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
47	bool irq_active_low;
48
49	bool spk_mono;   /* Speaker outputs tied together as mono */
50
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;
56};
57
58#endif
59