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 36 struct 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