1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 29a76f1ffSMark Brown /* 39a76f1ffSMark Brown * wm8962.h -- WM8962 Soc Audio driver platform data 49a76f1ffSMark Brown */ 59a76f1ffSMark Brown 69a76f1ffSMark Brown #ifndef _WM8962_PDATA_H 79a76f1ffSMark Brown #define _WM8962_PDATA_H 89a76f1ffSMark Brown 99a76f1ffSMark Brown #define WM8962_MAX_GPIO 6 109a76f1ffSMark Brown 119a76f1ffSMark Brown /* Use to set GPIO default values to zero */ 129a76f1ffSMark Brown #define WM8962_GPIO_SET 0x10000 139a76f1ffSMark Brown 147cd873c2SMark Brown #define WM8962_GPIO_FN_CLKOUT 0 157cd873c2SMark Brown #define WM8962_GPIO_FN_LOGIC 1 167cd873c2SMark Brown #define WM8962_GPIO_FN_SDOUT 2 177cd873c2SMark Brown #define WM8962_GPIO_FN_IRQ 3 187cd873c2SMark Brown #define WM8962_GPIO_FN_THERMAL 4 197cd873c2SMark Brown #define WM8962_GPIO_FN_PLL2_LOCK 6 207cd873c2SMark Brown #define WM8962_GPIO_FN_PLL3_LOCK 7 217cd873c2SMark Brown #define WM8962_GPIO_FN_FLL_LOCK 9 227cd873c2SMark Brown #define WM8962_GPIO_FN_DRC_ACT 10 237cd873c2SMark Brown #define WM8962_GPIO_FN_WSEQ_DONE 11 247cd873c2SMark Brown #define WM8962_GPIO_FN_ALC_NG_ACT 12 257cd873c2SMark Brown #define WM8962_GPIO_FN_ALC_PEAK_LIMIT 13 267cd873c2SMark Brown #define WM8962_GPIO_FN_ALC_SATURATION 14 277cd873c2SMark Brown #define WM8962_GPIO_FN_ALC_LEVEL_THR 15 287cd873c2SMark Brown #define WM8962_GPIO_FN_ALC_LEVEL_LOCK 16 297cd873c2SMark Brown #define WM8962_GPIO_FN_FIFO_ERR 17 307cd873c2SMark Brown #define WM8962_GPIO_FN_OPCLK 18 317cd873c2SMark Brown #define WM8962_GPIO_FN_DMICCLK 19 327cd873c2SMark Brown #define WM8962_GPIO_FN_DMICDAT 20 337cd873c2SMark Brown #define WM8962_GPIO_FN_MICD 21 347cd873c2SMark Brown #define WM8962_GPIO_FN_MICSCD 22 357cd873c2SMark Brown 369a76f1ffSMark Brown struct wm8962_pdata { 37d7821953SNicolin Chen struct clk *mclk; 383367b8d4SMark Brown int gpio_base; 399a76f1ffSMark Brown u32 gpio_init[WM8962_MAX_GPIO]; 409a76f1ffSMark Brown 41a4f28c00SMark Brown /* Setup for microphone detection, raw value to be written to 42a4f28c00SMark Brown * R48(0x30) - only microphone related bits will be updated. 43a4f28c00SMark Brown * Detection may be enabled here for use with signals brought 44a4f28c00SMark Brown * out on the GPIOs. */ 45a4f28c00SMark Brown u32 mic_cfg; 46a4f28c00SMark Brown 4745e65504SMark Brown bool irq_active_low; 4845e65504SMark Brown 499a76f1ffSMark Brown bool spk_mono; /* Speaker outputs tied together as mono */ 50182c51ceSMark Brown 51182c51ceSMark Brown /** 52182c51ceSMark Brown * This flag should be set if one or both IN4 inputs is wired 53182c51ceSMark Brown * in a DC measurement configuration. 54182c51ceSMark Brown */ 55182c51ceSMark Brown bool in4_dc_measure; 569a76f1ffSMark Brown }; 579a76f1ffSMark Brown 589a76f1ffSMark Brown #endif 59