blob: 6e37e0480f0452c03315d5a530593bb14c285630 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright Openedhand Ltd.
*
* Author: Richard Purdie <richard@openedhand.com>
* Binbin Zhou <zhoubinbin@loongson.cn>
*
*/
#ifndef _ES8323_H
#define _ES8323_H
/* ES8323 register space */
/* Chip Control and Power Management */
#define ES8323_CONTROL1 0x00
#define ES8323_CONTROL2 0x01
#define ES8323_CHIPPOWER 0x02
#define ES8323_CHIPPOWER_DACVREF_OFF 0
#define ES8323_CHIPPOWER_ADCVREF_OFF 1
#define ES8323_CHIPPOWER_DACDLL_OFF 2
#define ES8323_CHIPPOWER_ADCDLL_OFF 3
#define ES8323_CHIPPOWER_DACSTM_RESET 4
#define ES8323_CHIPPOWER_ADCSTM_RESET 5
#define ES8323_CHIPPOWER_DACDIG_OFF 6
#define ES8323_CHIPPOWER_ADCDIG_OFF 7
#define ES8323_ADCPOWER 0x03
#define ES8323_ADCPOWER_INT1LP BIT(0)
#define ES8323_ADCPOWER_FLASHLP BIT(1)
#define ES8323_ADCPOWER_PDNADCBIS BIT(2)
#define ES8323_ADCPOWER_PDNMICB BIT(3)
#define ES8323_ADCPOWER_PDNADCBIS_OFF 2
#define ES8323_ADCPOWER_PDNMICB_OFF 3
#define ES8323_ADCPOWER_PDNADCR_OFF 4
#define ES8323_ADCPOWER_PDNADCL_OFF 5
#define ES8323_ADCPOWER_PDNAINR_OFF 6
#define ES8323_ADCPOWER_PDNAINL_OFF 7
#define ES8323_DACPOWER 0x04
#define ES8323_DACPOWER_ROUT2_OFF 2
#define ES8323_DACPOWER_LOUT2_OFF 3
#define ES8323_DACPOWER_ROUT1_OFF 4
#define ES8323_DACPOWER_LOUT1_OFF 5
#define ES8323_DACPOWER_PDNDACR_OFF 6
#define ES8323_DACPOWER_PDNDACL_OFF 7
#define ES8323_CHIPLOPOW1 0x05
#define ES8323_CHIPLOPOW2 0x06
#define ES8323_ANAVOLMANAG 0x07
#define ES8323_MASTERMODE 0x08
#define ES8323_MASTERMODE_BCLKDIV GENMASK(4, 0)
#define ES8323_MASTERMODE_BCLKINV BIT(5)
#define ES8323_MASTERMODE_MCLKDIV2 BIT(6)
#define ES8323_MASTERMODE_MSC BIT(7)
/* ADC Control */
#define ES8323_ADCCONTROL1 0x09
#define ES8323_ADCCONTROL1_MICAMPR_OFF 0
#define ES8323_ADCCONTROL1_MICAMPL_OFF 4
#define ES8323_ADCCONTROL2 0x0a
#define ES8323_ADCCONTROL3 0x0b
#define ES8323_ADCCONTROL4 0x0c
#define ES8323_ADCCONTROL4_ADCFORMAT GENMASK(1, 0)
#define ES8323_FMT_I2S 0x0
#define ES8323_FMT_LEFT_J 0x1
#define ES8323_FMT_RIGHT_J 0x2
#define ES8323_FMT_DSP 0x3
#define ES8323_ADCCONTROL4_ADCWL GENMASK(4, 2)
#define ES8323_S24_LE 0x0
#define ES8323_S20_LE 0x1
#define ES8323_S18_LE 0x2
#define ES8323_S16_LE 0x3
#define ES8323_S32_LE 0x4
#define ES8323_ADCCONTROL4_ADCLRP BIT(5)
#define ES8323_ADCCONTROL4_DATSEL GENMASK(7, 6)
#define ES8323_ADCCONTROL5 0x0d
#define ES8323_ADCCONTROL5_ADCFSRATIO GENMASK(4, 0)
#define ES8323_ADCCONTROL5_ADCFSMODE BIT(5)
#define ES8323_ADCCONTROL5_ADCFS_MASK (ES8323_ADCCONTROL5_ADCFSRATIO |\
ES8323_ADCCONTROL5_ADCFSMODE)
#define ES8323_ADCCONTROL6 0x0e
#define ES8323_ADCCONTROL7 0x0f
#define ES8323_ADCCONTROL7_ADCMUTE_OFF 2
#define ES8323_LADC_VOL 0x10
#define ES8323_RADC_VOL 0x11
#define ES8323_ADCCONTROL10 0x12
#define ES8323_ADCCONTROL11 0x13
#define ES8323_ADCCONTROL12 0x14
#define ES8323_ADCCONTROL12_ALCATK_OFF 0
#define ES8323_ADCCONTROL12_ALCDCY_OFF 4
#define ES8323_ADCCONTROL13 0x15
#define ES8323_ADCCONTROL13_TIMEOUT_OFF 5
#define ES8323_ADCCONTROL13_ALCZC_OFF 6
#define ES8323_ADCCONTROL14 0x16
#define ES8323_ADCCONTROL14_NGAT_OFF 0
#define ES8323_ADCCONTROL14_NGG_OFF 1
#define ES8323_ADCCONTROL14_NGTH_OFF 3
/* DAC Control */
#define ES8323_DACCONTROL1 0x17
#define ES8323_DACCONTROL1_DACFORMAT GENMASK(1, 0)
#define ES8323_DACCONTROL1_DACWL GENMASK(5, 3)
#define ES8323_DACCONTROL1_DACLRP BIT(6)
#define ES8323_DACCONTROL1_DACLRSWAP BIT(7)
#define ES8323_DACCONTROL2 0x18
#define ES8323_DACCONTROL2_DACFSRATIO GENMASK(4, 0)
#define ES8323_DACCONTROL2_DACFSMODE BIT(5)
#define ES8323_DACCONTROL2_DACFS_MASK (ES8323_DACCONTROL2_DACFSRATIO |\
ES8323_DACCONTROL2_DACFSMODE)
#define ES8323_DACCONTROL3 0x19
#define ES8323_DACCONTROL3_DACMUTE BIT(2)
#define ES8323_LDAC_VOL 0x1a
#define ES8323_RDAC_VOL 0x1b
#define ES8323_DACCONTROL6 0x1c
#define ES8323_DACCONTROL7 0x1d
#define ES8323_DACCONTROL8 0x1e
#define ES8323_DACCONTROL9 0x1f
#define ES8323_DACCONTROL10 0x20
#define ES8323_DACCONTROL11 0x21
#define ES8323_DACCONTROL12 0x22
#define ES8323_DACCONTROL13 0x23
#define ES8323_DACCONTROL14 0x24
#define ES8323_DACCONTROL15 0x25
#define ES8323_DACCONTROL16 0x26
#define ES8323_DACCONTROL17 0x27
#define ES8323_DACCONTROL17_LI2LOVOL_OFF 3
#define ES8323_DACCONTROL18 0x28
#define ES8323_DACCONTROL19 0x29
#define ES8323_DACCONTROL20 0x2a
#define ES8323_DACCONTROL20_RI2ROVOL_OFF 3
#define ES8323_DACCONTROL21 0x2b
#define ES8323_DACCONTROL22 0x2c
#define ES8323_DACCONTROL23 0x2d
#define ES8323_LOUT1_VOL 0x2e
#define ES8323_ROUT1_VOL 0x2f
#define ES8323_LOUT2_VOL 0x30
#define ES8323_ROUT2_VOL 0x31
#define ES8323_DACCONTROL28 0x32
#define ES8323_DACCONTROL29 0x33
#define ES8323_DACCONTROL30 0x34
#endif
|