1 /* 2 * wm9713.h -- WM9713 Soc Audio driver 3 */ 4 5 #ifndef _WM9713_H 6 #define _WM9713_H 7 8 /* clock inputs */ 9 #define WM9713_CLKA_PIN 0 10 #define WM9713_CLKB_PIN 1 11 12 /* clock divider ID's */ 13 #define WM9713_PCMCLK_DIV 0 14 #define WM9713_CLKA_MULT 1 15 #define WM9713_CLKB_MULT 2 16 #define WM9713_HIFI_DIV 3 17 #define WM9713_PCMBCLK_DIV 4 18 #define WM9713_PCMCLK_PLL_DIV 5 19 #define WM9713_HIFI_PLL_DIV 6 20 21 /* Calculate the appropriate bit mask for the external PCM clock divider */ 22 #define WM9713_PCMDIV(x) ((x - 1) << 8) 23 24 /* Calculate the appropriate bit mask for the external HiFi clock divider */ 25 #define WM9713_HIFIDIV(x) ((x - 1) << 12) 26 27 /* MCLK clock mulitipliers */ 28 #define WM9713_CLKA_X1 (0 << 1) 29 #define WM9713_CLKA_X2 (1 << 1) 30 #define WM9713_CLKB_X1 (0 << 2) 31 #define WM9713_CLKB_X2 (1 << 2) 32 33 /* MCLK clock MUX */ 34 #define WM9713_CLK_MUX_A (0 << 0) 35 #define WM9713_CLK_MUX_B (1 << 0) 36 37 /* Voice DAI BCLK divider */ 38 #define WM9713_PCMBCLK_DIV_1 (0 << 9) 39 #define WM9713_PCMBCLK_DIV_2 (1 << 9) 40 #define WM9713_PCMBCLK_DIV_4 (2 << 9) 41 #define WM9713_PCMBCLK_DIV_8 (3 << 9) 42 #define WM9713_PCMBCLK_DIV_16 (4 << 9) 43 44 #define WM9713_DAI_AC97_HIFI 0 45 #define WM9713_DAI_AC97_AUX 1 46 #define WM9713_DAI_PCM_VOICE 2 47 48 extern struct snd_soc_codec_device soc_codec_dev_wm9713; 49 extern struct snd_soc_codec_dai wm9713_dai[3]; 50 51 int wm9713_reset(struct snd_soc_codec *codec, int try_warm); 52 53 #endif 54