1
2
3
4
5
6
7
8
9
10
11 #ifndef __CS42L73_H__
12 #define __CS42L73_H__
13
14
15
16 #define CS42L73_CHIP_ID 0x4a
17 #define CS42L73_DEVID_AB 0x01
18 #define CS42L73_DEVID_CD 0x02
19 #define CS42L73_DEVID_E 0x03
20 #define CS42L73_REVID 0x05
21 #define CS42L73_PWRCTL1 0x06
22 #define CS42L73_PWRCTL2 0x07
23 #define CS42L73_PWRCTL3 0x08
24 #define CS42L73_CPFCHC 0x09
25 #define CS42L73_OLMBMSDC 0x0A
26 #define CS42L73_DMMCC 0x0B
27 #define CS42L73_XSPC 0x0C
28 #define CS42L73_XSPMMCC 0x0D
29 #define CS42L73_ASPC 0x0E
30 #define CS42L73_ASPMMCC 0x0F
31 #define CS42L73_VSPC 0x10
32 #define CS42L73_VSPMMCC 0x11
33 #define CS42L73_VXSPFS 0x12
34 #define CS42L73_MIOPC 0x13
35 #define CS42L73_ADCIPC 0x14
36 #define CS42L73_MICAPREPGAAVOL 0x15
37 #define CS42L73_MICBPREPGABVOL 0x16
38 #define CS42L73_IPADVOL 0x17
39 #define CS42L73_IPBDVOL 0x18
40 #define CS42L73_PBDC 0x19
41 #define CS42L73_HLADVOL 0x1A
42 #define CS42L73_HLBDVOL 0x1B
43 #define CS42L73_SPKDVOL 0x1C
44 #define CS42L73_ESLDVOL 0x1D
45 #define CS42L73_HPAAVOL 0x1E
46 #define CS42L73_HPBAVOL 0x1F
47 #define CS42L73_LOAAVOL 0x20
48 #define CS42L73_LOBAVOL 0x21
49 #define CS42L73_STRINV 0x22
50 #define CS42L73_XSPINV 0x23
51 #define CS42L73_ASPINV 0x24
52 #define CS42L73_VSPINV 0x25
53 #define CS42L73_LIMARATEHL 0x26
54 #define CS42L73_LIMRRATEHL 0x27
55 #define CS42L73_LMAXHL 0x28
56 #define CS42L73_LIMARATESPK 0x29
57 #define CS42L73_LIMRRATESPK 0x2A
58 #define CS42L73_LMAXSPK 0x2B
59 #define CS42L73_LIMARATEESL 0x2C
60 #define CS42L73_LIMRRATEESL 0x2D
61 #define CS42L73_LMAXESL 0x2E
62 #define CS42L73_ALCARATE 0x2F
63 #define CS42L73_ALCRRATE 0x30
64 #define CS42L73_ALCMINMAX 0x31
65 #define CS42L73_NGCAB 0x32
66 #define CS42L73_ALCNGMC 0x33
67 #define CS42L73_MIXERCTL 0x34
68 #define CS42L73_HLAIPAA 0x35
69 #define CS42L73_HLBIPBA 0x36
70 #define CS42L73_HLAXSPAA 0x37
71 #define CS42L73_HLBXSPBA 0x38
72 #define CS42L73_HLAASPAA 0x39
73 #define CS42L73_HLBASPBA 0x3A
74 #define CS42L73_HLAVSPMA 0x3B
75 #define CS42L73_HLBVSPMA 0x3C
76 #define CS42L73_XSPAIPAA 0x3D
77 #define CS42L73_XSPBIPBA 0x3E
78 #define CS42L73_XSPAXSPAA 0x3F
79 #define CS42L73_XSPBXSPBA 0x40
80 #define CS42L73_XSPAASPAA 0x41
81 #define CS42L73_XSPAASPBA 0x42
82 #define CS42L73_XSPAVSPMA 0x43
83 #define CS42L73_XSPBVSPMA 0x44
84 #define CS42L73_ASPAIPAA 0x45
85 #define CS42L73_ASPBIPBA 0x46
86 #define CS42L73_ASPAXSPAA 0x47
87 #define CS42L73_ASPBXSPBA 0x48
88 #define CS42L73_ASPAASPAA 0x49
89 #define CS42L73_ASPBASPBA 0x4A
90 #define CS42L73_ASPAVSPMA 0x4B
91 #define CS42L73_ASPBVSPMA 0x4C
92 #define CS42L73_VSPAIPAA 0x4D
93 #define CS42L73_VSPBIPBA 0x4E
94 #define CS42L73_VSPAXSPAA 0x4F
95 #define CS42L73_VSPBXSPBA 0x50
96 #define CS42L73_VSPAASPAA 0x51
97 #define CS42L73_VSPBASPBA 0x52
98 #define CS42L73_VSPAVSPMA 0x53
99 #define CS42L73_VSPBVSPMA 0x54
100 #define CS42L73_MMIXCTL 0x55
101 #define CS42L73_SPKMIPMA 0x56
102 #define CS42L73_SPKMXSPA 0x57
103 #define CS42L73_SPKMASPA 0x58
104 #define CS42L73_SPKMVSPMA 0x59
105 #define CS42L73_ESLMIPMA 0x5A
106 #define CS42L73_ESLMXSPA 0x5B
107 #define CS42L73_ESLMASPA 0x5C
108 #define CS42L73_ESLMVSPMA 0x5D
109 #define CS42L73_IM1 0x5E
110 #define CS42L73_IM2 0x5F
111 #define CS42L73_IS1 0x60
112 #define CS42L73_IS2 0x61
113 #define CS42L73_MAX_REGISTER 0x61
114
115
116
117 #define CS42L73_PDN_ADCB (1 << 7)
118 #define CS42L73_PDN_DMICB (1 << 6)
119 #define CS42L73_PDN_ADCA (1 << 5)
120 #define CS42L73_PDN_DMICA (1 << 4)
121 #define CS42L73_PDN_LDO (1 << 2)
122 #define CS42L73_DISCHG_FILT (1 << 1)
123 #define CS42L73_PDN (1 << 0)
124
125
126 #define CS42L73_PDN_MIC2_BIAS (1 << 7)
127 #define CS42L73_PDN_MIC1_BIAS (1 << 6)
128 #define CS42L73_PDN_VSP (1 << 4)
129 #define CS42L73_PDN_ASP_SDOUT (1 << 3)
130 #define CS42L73_PDN_ASP_SDIN (1 << 2)
131 #define CS42L73_PDN_XSP_SDOUT (1 << 1)
132 #define CS42L73_PDN_XSP_SDIN (1 << 0)
133
134
135 #define CS42L73_PDN_THMS (1 << 5)
136 #define CS42L73_PDN_SPKLO (1 << 4)
137 #define CS42L73_PDN_EAR (1 << 3)
138 #define CS42L73_PDN_SPK (1 << 2)
139 #define CS42L73_PDN_LO (1 << 1)
140 #define CS42L73_PDN_HP (1 << 0)
141
142
143 #define CS42L73_THMOVLD_150C 0
144 #define CS42L73_THMOVLD_132C 1
145 #define CS42L73_THMOVLD_115C 2
146 #define CS42L73_THMOVLD_098C 3
147
148 #define CS42L73_CHARGEPUMP_MASK (0xF0)
149
150
151 #define CS42L73_SP_3ST (1 << 7)
152 #define CS42L73_SPDIF_I2S (0 << 6)
153 #define CS42L73_SPDIF_PCM (1 << 6)
154 #define CS42L73_PCM_MODE0 (0 << 4)
155 #define CS42L73_PCM_MODE1 (1 << 4)
156 #define CS42L73_PCM_MODE2 (2 << 4)
157 #define CS42L73_PCM_MODE_MASK (3 << 4)
158 #define CS42L73_PCM_BIT_ORDER (1 << 3)
159 #define CS42L73_MCK_SCLK_64FS (0 << 0)
160 #define CS42L73_MCK_SCLK_MCLK (2 << 0)
161 #define CS42L73_MCK_SCLK_PREMCLK (3 << 0)
162
163
164 #define CS42L73_MS_MASTER (1 << 7)
165
166
167
168 #define CS42L73_MCLKDIS (1 << 0)
169 #define CS42L73_MCLKSEL_MCLK2 (1 << 4)
170 #define CS42L73_MCLKSEL_MCLK1 (0 << 4)
171
172
173 #define CS42L73_CLKID_MCLK1 0
174 #define CS42L73_CLKID_MCLK2 1
175
176 #define CS42L73_MCLKXDIV 0
177 #define CS42L73_MMCCDIV 1
178
179 #define CS42L73_XSP 0
180 #define CS42L73_ASP 1
181 #define CS42L73_VSP 2
182
183
184 #define CS42L73_MIC2_SDET (1 << 6)
185 #define CS42L73_THMOVLD (1 << 4)
186 #define CS42L73_DIGMIXOVFL (1 << 3)
187 #define CS42L73_IPBOVFL (1 << 1)
188 #define CS42L73_IPAOVFL (1 << 0)
189
190
191 #define CS42L73_ANLGOSFT (1 << 0)
192
193
194 #define CS42L73_HPA_MUTE (1 << 7)
195
196 #define CS42L73_LOA_MUTE (1 << 7)
197
198 #define CS42L73_HLAD_MUTE (1 << 0)
199 #define CS42L73_HLBD_MUTE (1 << 1)
200 #define CS42L73_SPKD_MUTE (1 << 2)
201 #define CS42L73_ESLD_MUTE (1 << 3)
202
203
204 #define CS42L73_DEVID 0x00042A73
205 #define CS42L73_MCLKX_MIN 5644800
206 #define CS42L73_MCLKX_MAX 38400000
207
208 #define CS42L73_SPC(id) (CS42L73_XSPC + (id << 1))
209 #define CS42L73_MMCC(id) (CS42L73_XSPMMCC + (id << 1))
210 #define CS42L73_SPFS(id) ((id == CS42L73_ASP) ? CS42L73_ASPC : CS42L73_VXSPFS)
211
212 #endif