xref: /linux/sound/soc/codecs/wm8753.h (revision 1f53aee0e0b398bad0c6ec2cd5ca2bccd4fbd56b)
1*1f53aee0SLiam Girdwood /*
2*1f53aee0SLiam Girdwood  * wm8753.h  --  audio driver for WM8753
3*1f53aee0SLiam Girdwood  *
4*1f53aee0SLiam Girdwood  * Copyright 2003 Wolfson Microelectronics PLC.
5*1f53aee0SLiam Girdwood  * Author: Liam Girdwood
6*1f53aee0SLiam Girdwood  *         liam.girdwood@wolfsonmicro.com or linux@wolfsonmicro.com
7*1f53aee0SLiam Girdwood  *
8*1f53aee0SLiam Girdwood  *  This program is free software; you can redistribute  it and/or modify it
9*1f53aee0SLiam Girdwood  *  under  the terms of  the GNU General  Public License as published by the
10*1f53aee0SLiam Girdwood  *  Free Software Foundation;  either version 2 of the  License, or (at your
11*1f53aee0SLiam Girdwood  *  option) any later version.
12*1f53aee0SLiam Girdwood  *
13*1f53aee0SLiam Girdwood  */
14*1f53aee0SLiam Girdwood 
15*1f53aee0SLiam Girdwood #ifndef _WM8753_H
16*1f53aee0SLiam Girdwood #define _WM8753_H
17*1f53aee0SLiam Girdwood 
18*1f53aee0SLiam Girdwood /* WM8753 register space */
19*1f53aee0SLiam Girdwood 
20*1f53aee0SLiam Girdwood #define WM8753_DAC		0x01
21*1f53aee0SLiam Girdwood #define WM8753_ADC		0x02
22*1f53aee0SLiam Girdwood #define WM8753_PCM		0x03
23*1f53aee0SLiam Girdwood #define WM8753_HIFI		0x04
24*1f53aee0SLiam Girdwood #define WM8753_IOCTL		0x05
25*1f53aee0SLiam Girdwood #define WM8753_SRATE1		0x06
26*1f53aee0SLiam Girdwood #define WM8753_SRATE2		0x07
27*1f53aee0SLiam Girdwood #define WM8753_LDAC		0x08
28*1f53aee0SLiam Girdwood #define WM8753_RDAC		0x09
29*1f53aee0SLiam Girdwood #define WM8753_BASS		0x0a
30*1f53aee0SLiam Girdwood #define WM8753_TREBLE		0x0b
31*1f53aee0SLiam Girdwood #define WM8753_ALC1		0x0c
32*1f53aee0SLiam Girdwood #define WM8753_ALC2		0x0d
33*1f53aee0SLiam Girdwood #define WM8753_ALC3		0x0e
34*1f53aee0SLiam Girdwood #define WM8753_NGATE		0x0f
35*1f53aee0SLiam Girdwood #define WM8753_LADC		0x10
36*1f53aee0SLiam Girdwood #define WM8753_RADC		0x11
37*1f53aee0SLiam Girdwood #define WM8753_ADCTL1		0x12
38*1f53aee0SLiam Girdwood #define WM8753_3D		0x13
39*1f53aee0SLiam Girdwood #define WM8753_PWR1		0x14
40*1f53aee0SLiam Girdwood #define WM8753_PWR2		0x15
41*1f53aee0SLiam Girdwood #define WM8753_PWR3		0x16
42*1f53aee0SLiam Girdwood #define WM8753_PWR4		0x17
43*1f53aee0SLiam Girdwood #define WM8753_ID		0x18
44*1f53aee0SLiam Girdwood #define WM8753_INTPOL		0x19
45*1f53aee0SLiam Girdwood #define WM8753_INTEN		0x1a
46*1f53aee0SLiam Girdwood #define WM8753_GPIO1		0x1b
47*1f53aee0SLiam Girdwood #define WM8753_GPIO2		0x1c
48*1f53aee0SLiam Girdwood #define WM8753_RESET		0x1f
49*1f53aee0SLiam Girdwood #define WM8753_RECMIX1		0x20
50*1f53aee0SLiam Girdwood #define WM8753_RECMIX2		0x21
51*1f53aee0SLiam Girdwood #define WM8753_LOUTM1		0x22
52*1f53aee0SLiam Girdwood #define WM8753_LOUTM2		0x23
53*1f53aee0SLiam Girdwood #define WM8753_ROUTM1		0x24
54*1f53aee0SLiam Girdwood #define WM8753_ROUTM2		0x25
55*1f53aee0SLiam Girdwood #define WM8753_MOUTM1		0x26
56*1f53aee0SLiam Girdwood #define WM8753_MOUTM2		0x27
57*1f53aee0SLiam Girdwood #define WM8753_LOUT1V		0x28
58*1f53aee0SLiam Girdwood #define WM8753_ROUT1V		0x29
59*1f53aee0SLiam Girdwood #define WM8753_LOUT2V		0x2a
60*1f53aee0SLiam Girdwood #define WM8753_ROUT2V		0x2b
61*1f53aee0SLiam Girdwood #define WM8753_MOUTV		0x2c
62*1f53aee0SLiam Girdwood #define WM8753_OUTCTL		0x2d
63*1f53aee0SLiam Girdwood #define WM8753_ADCIN		0x2e
64*1f53aee0SLiam Girdwood #define WM8753_INCTL1		0x2f
65*1f53aee0SLiam Girdwood #define WM8753_INCTL2		0x30
66*1f53aee0SLiam Girdwood #define WM8753_LINVOL		0x31
67*1f53aee0SLiam Girdwood #define WM8753_RINVOL		0x32
68*1f53aee0SLiam Girdwood #define WM8753_MICBIAS		0x33
69*1f53aee0SLiam Girdwood #define WM8753_CLOCK		0x34
70*1f53aee0SLiam Girdwood #define WM8753_PLL1CTL1		0x35
71*1f53aee0SLiam Girdwood #define WM8753_PLL1CTL2		0x36
72*1f53aee0SLiam Girdwood #define WM8753_PLL1CTL3		0x37
73*1f53aee0SLiam Girdwood #define WM8753_PLL1CTL4		0x38
74*1f53aee0SLiam Girdwood #define WM8753_PLL2CTL1		0x39
75*1f53aee0SLiam Girdwood #define WM8753_PLL2CTL2		0x3a
76*1f53aee0SLiam Girdwood #define WM8753_PLL2CTL3		0x3b
77*1f53aee0SLiam Girdwood #define WM8753_PLL2CTL4		0x3c
78*1f53aee0SLiam Girdwood #define WM8753_BIASCTL		0x3d
79*1f53aee0SLiam Girdwood #define WM8753_ADCTL2		0x3f
80*1f53aee0SLiam Girdwood 
81*1f53aee0SLiam Girdwood struct wm8753_setup_data {
82*1f53aee0SLiam Girdwood 	unsigned short i2c_address;
83*1f53aee0SLiam Girdwood };
84*1f53aee0SLiam Girdwood 
85*1f53aee0SLiam Girdwood #define WM8753_PLL1			0
86*1f53aee0SLiam Girdwood #define WM8753_PLL2			1
87*1f53aee0SLiam Girdwood 
88*1f53aee0SLiam Girdwood /* clock inputs */
89*1f53aee0SLiam Girdwood #define WM8753_MCLK		0
90*1f53aee0SLiam Girdwood #define WM8753_PCMCLK		1
91*1f53aee0SLiam Girdwood 
92*1f53aee0SLiam Girdwood /* clock divider id's */
93*1f53aee0SLiam Girdwood #define WM8753_PCMDIV		0
94*1f53aee0SLiam Girdwood #define WM8753_BCLKDIV		1
95*1f53aee0SLiam Girdwood #define WM8753_VXCLKDIV		2
96*1f53aee0SLiam Girdwood 
97*1f53aee0SLiam Girdwood /* PCM clock dividers */
98*1f53aee0SLiam Girdwood #define WM8753_PCM_DIV_1	(0 << 6)
99*1f53aee0SLiam Girdwood #define WM8753_PCM_DIV_3	(2 << 6)
100*1f53aee0SLiam Girdwood #define WM8753_PCM_DIV_5_5	(3 << 6)
101*1f53aee0SLiam Girdwood #define WM8753_PCM_DIV_2	(4 << 6)
102*1f53aee0SLiam Girdwood #define WM8753_PCM_DIV_4	(5 << 6)
103*1f53aee0SLiam Girdwood #define WM8753_PCM_DIV_6	(6 << 6)
104*1f53aee0SLiam Girdwood #define WM8753_PCM_DIV_8	(7 << 6)
105*1f53aee0SLiam Girdwood 
106*1f53aee0SLiam Girdwood /* BCLK clock dividers */
107*1f53aee0SLiam Girdwood #define WM8753_BCLK_DIV_1	(0 << 3)
108*1f53aee0SLiam Girdwood #define WM8753_BCLK_DIV_2	(1 << 3)
109*1f53aee0SLiam Girdwood #define WM8753_BCLK_DIV_4	(2 << 3)
110*1f53aee0SLiam Girdwood #define WM8753_BCLK_DIV_8	(3 << 3)
111*1f53aee0SLiam Girdwood #define WM8753_BCLK_DIV_16	(4 << 3)
112*1f53aee0SLiam Girdwood 
113*1f53aee0SLiam Girdwood /* VXCLK clock dividers */
114*1f53aee0SLiam Girdwood #define WM8753_VXCLK_DIV_1	(0 << 6)
115*1f53aee0SLiam Girdwood #define WM8753_VXCLK_DIV_2	(1 << 6)
116*1f53aee0SLiam Girdwood #define WM8753_VXCLK_DIV_4	(2 << 6)
117*1f53aee0SLiam Girdwood #define WM8753_VXCLK_DIV_8	(3 << 6)
118*1f53aee0SLiam Girdwood #define WM8753_VXCLK_DIV_16	(4 << 6)
119*1f53aee0SLiam Girdwood 
120*1f53aee0SLiam Girdwood #define WM8753_DAI_HIFI		0
121*1f53aee0SLiam Girdwood #define WM8753_DAI_VOICE		1
122*1f53aee0SLiam Girdwood 
123*1f53aee0SLiam Girdwood extern struct snd_soc_codec_dai wm8753_dai[2];
124*1f53aee0SLiam Girdwood extern struct snd_soc_codec_device soc_codec_dev_wm8753;
125*1f53aee0SLiam Girdwood 
126*1f53aee0SLiam Girdwood #endif
127