hc
2023-11-22 f743a7adbd6e230d66a6206fa115b59fec2d88eb
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
/*
 * Copyright Everest Semiconductor Co.,Ltd
 *
 * Author: David Yang <yangxiaohua@everest-semi.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
 *
 */
 
#ifndef _ES8316_H
#define _ES8316_H
 
/*
 * ES8316 register space
 */
 
/* Reset Control */
#define ES8316_RESET        0x00
 
/* Clock Management */
#define ES8316_CLKMGR_CLKSW    0x01
#define ES8316_CLKMGR_CLKSEL    0x02
#define ES8316_CLKMGR_ADCOSR    0x03
#define ES8316_CLKMGR_ADCDIV1    0x04
#define ES8316_CLKMGR_ADCDIV2    0x05
#define ES8316_CLKMGR_DACDIV1    0x06
#define ES8316_CLKMGR_DACDIV2    0x07
#define ES8316_CLKMGR_CPDIV    0x08
 
/* Serial Data Port Control */
#define ES8316_SERDATA1        0x09
#define ES8316_SERDATA_ADC    0x0a
#define ES8316_SERDATA_DAC    0x0b
 
/* System Control */
#define ES8316_SYS_VMIDSEL    0x0c
#define ES8316_SYS_PDN        0x0d
#define ES8316_SYS_LP1        0x0e
#define ES8316_SYS_LP2        0x0f
#define ES8316_SYS_VMIDLOW    0x10
#define ES8316_SYS_VSEL        0x11
#define ES8316_SYS_REF        0x12
 
/* Headphone Mixer */
#define ES8316_HPMIX_SEL    0x13
#define ES8316_HPMIX_SWITCH    0x14
#define ES8316_HPMIX_PDN    0x15
#define ES8316_HPMIX_VOL    0x16
 
/* Charge Pump Headphone driver */
#define ES8316_CPHP_OUTEN    0x17
#define ES8316_CPHP_ICAL_VOL    0x18
#define ES8316_CPHP_PDN1    0x19
#define ES8316_CPHP_PDN2    0x1a
#define ES8316_CPHP_LDOCTL    0x1b
 
/* Calibration */
#define ES8316_CAL_TYPE        0x1c
#define ES8316_CAL_SET        0x1d
#define ES8316_CAL_HPLIV    0x1e
#define ES8316_CAL_HPRIV    0x1f
#define ES8316_CAL_HPLMV    0x20
#define ES8316_CAL_HPRMV    0x21
 
/* ADC Control */
#define ES8316_ADC_PDN_LINSEL    0x22
#define ES8316_ADC_PGAGAIN    0x23
#define ES8316_ADC_D2SEPGA    0x24
#define ES8316_ADC_DMIC        0x25
#define ES8316_ADC_MUTE        0x26
#define ES8316_ADC_VOLUME    0x27
#define ES8316_ADC_ALC1        0x29
#define ES8316_ADC_ALC2        0x2a
#define ES8316_ADC_ALC3        0x2b
#define ES8316_ADC_ALC4        0x2c
#define ES8316_ADC_ALC5        0x2d
#define ES8316_ADC_ALC_NG    0x2e
 
/* DAC Control */
#define ES8316_DAC_PDN        0x2f
#define ES8316_DAC_SET1        0x30
#define ES8316_DAC_SET2        0x31
#define ES8316_DAC_SET3        0x32
#define ES8316_DAC_VOLL        0x33
#define ES8316_DAC_VOLR        0x34
 
/* GPIO */
#define ES8316_GPIO_SEL        0x4d
#define ES8316_GPIO_DEBOUNCE    0x4e
#define ES8316_GPIO_FLAG    0x4f
 
/* Test mode */
#define ES8316_TESTMODE        0x50
#define ES8316_TEST1        0x51
#define ES8316_TEST2        0x52
#define ES8316_TEST3        0x53
 
/*
 * Field definitions
 */
 
/* ES8316_RESET */
#define ES8316_RESET_CSM_ON        0x80
 
/* ES8316_CLKMGR_CLKSW */
#define ES8316_CLKMGR_CLKSW_MCLK_ON    0x40
#define ES8316_CLKMGR_CLKSW_BCLK_ON    0x20
 
/* ES8316_SERDATA1 */
#define ES8316_SERDATA1_MASTER        0x80
#define ES8316_SERDATA1_BCLK_INV    0x20
 
/* ES8316_SERDATA_ADC and _DAC */
#define ES8316_SERDATA2_FMT_MASK    0x3
#define ES8316_SERDATA2_FMT_I2S        0x00
#define ES8316_SERDATA2_FMT_LEFTJ    0x01
#define ES8316_SERDATA2_FMT_RIGHTJ    0x02
#define ES8316_SERDATA2_FMT_PCM        0x03
#define ES8316_SERDATA2_ADCLRP        0x20
#define ES8316_SERDATA2_LEN_MASK    0x1c
#define ES8316_SERDATA2_LEN_24        0x00
#define ES8316_SERDATA2_LEN_20        0x04
#define ES8316_SERDATA2_LEN_18        0x08
#define ES8316_SERDATA2_LEN_16        0x0c
#define ES8316_SERDATA2_LEN_32        0x10
 
#endif