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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright 2005 Openedhand Ltd.
 *
 * Author: Richard Purdie <richard@openedhand.com>
 */
 
#ifndef _ES8323_H
#define _ES8323_H
 
#define CONFIG_HHTECH_MINIPMP    1
 
/* ES8323 register space */
 
#define ES8323_CONTROL1         0x00
#define ES8323_CONTROL2         0x01
#define ES8323_CHIPPOWER        0x02
#define ES8323_ADCPOWER         0x03
#define ES8323_DACPOWER         0x04
#define ES8323_CHIPLOPOW1       0x05
#define ES8323_CHIPLOPOW2       0x06
#define ES8323_ANAVOLMANAG      0x07
#define ES8323_MASTERMODE       0x08
#define ES8323_ADCCONTROL1      0x09
#define ES8323_ADCCONTROL2      0x0a
#define ES8323_ADCCONTROL3      0x0b
#define ES8323_ADCCONTROL4      0x0c
#define ES8323_ADCCONTROL5      0x0d
#define ES8323_ADCCONTROL6      0x0e
#define ES8323_ADCCONTROL7      0x0f
#define ES8323_ADCCONTROL8      0x10
#define ES8323_ADCCONTROL9      0x11
#define ES8323_ADCCONTROL10     0x12
#define ES8323_ADCCONTROL11     0x13
#define ES8323_ADCCONTROL12     0x14
#define ES8323_ADCCONTROL13     0x15
#define ES8323_ADCCONTROL14     0x16
 
#define ES8323_DACCONTROL1      0x17
#define ES8323_DACCONTROL2      0x18
#define ES8323_DACCONTROL3      0x19
#define ES8323_DACCONTROL4      0x1a
#define ES8323_DACCONTROL5      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_DACCONTROL18     0x28
#define ES8323_DACCONTROL19     0x29
#define ES8323_DACCONTROL20     0x2a
#define ES8323_DACCONTROL21     0x2b
#define ES8323_DACCONTROL22     0x2c
#define ES8323_DACCONTROL23     0x2d
#define ES8323_DACCONTROL24     0x2e
#define ES8323_DACCONTROL25     0x2f
#define ES8323_DACCONTROL26     0x30
#define ES8323_DACCONTROL27     0x31
#define ES8323_DACCONTROL28     0x32
#define ES8323_DACCONTROL29     0x33
#define ES8323_DACCONTROL30     0x34
 
#define ES8323_LADC_VOL         ES8323_ADCCONTROL8
#define ES8323_RADC_VOL         ES8323_ADCCONTROL9
 
#define ES8323_LDAC_VOL         ES8323_DACCONTROL4
#define ES8323_RDAC_VOL         ES8323_DACCONTROL5
 
#define ES8323_LOUT1_VOL        ES8323_DACCONTROL24
#define ES8323_ROUT1_VOL        ES8323_DACCONTROL25
#define ES8323_LOUT2_VOL        ES8323_DACCONTROL26
#define ES8323_ROUT2_VOL        ES8323_DACCONTROL27
 
#define ES8323_ADC_MUTE         ES8323_ADCCONTROL7
#define ES8323_DAC_MUTE         ES8323_DACCONTROL3
 
 
 
#define ES8323_IFACE            ES8323_MASTERMODE
 
#define ES8323_ADC_IFACE        ES8323_ADCCONTROL4
#define ES8323_ADC_SRATE        ES8323_ADCCONTROL5
 
#define ES8323_DAC_IFACE        ES8323_DACCONTROL1
#define ES8323_DAC_SRATE        ES8323_DACCONTROL2
 
 
 
#define ES8323_CACHEREGNUM      53
#define ES8323_SYSCLK            0
 
struct es8323_setup_data {
   int i2c_bus;    
   unsigned short i2c_address;
};
 
#if 1 //lzcx
#define ES8323_PLL1            0
#define ES8323_PLL2            1
 
/* clock inputs */
#define ES8323_MCLK        0
#define ES8323_PCMCLK        1
 
/* clock divider id's */
#define ES8323_PCMDIV        0
#define ES8323_BCLKDIV        1
#define ES8323_VXCLKDIV        2
 
/* PCM clock dividers */
#define ES8323_PCM_DIV_1    (0 << 6)
#define ES8323_PCM_DIV_3    (2 << 6)
#define ES8323_PCM_DIV_5_5    (3 << 6)
#define ES8323_PCM_DIV_2    (4 << 6)
#define ES8323_PCM_DIV_4    (5 << 6)
#define ES8323_PCM_DIV_6    (6 << 6)
#define ES8323_PCM_DIV_8    (7 << 6)
 
/* BCLK clock dividers */
#define ES8323_BCLK_DIV_1    (0 << 7)
#define ES8323_BCLK_DIV_2    (1 << 7)
#define ES8323_BCLK_DIV_4    (2 << 7)
#define ES8323_BCLK_DIV_8    (3 << 7)
 
/* VXCLK clock dividers */
#define ES8323_VXCLK_DIV_1    (0 << 6)
#define ES8323_VXCLK_DIV_2    (1 << 6)
#define ES8323_VXCLK_DIV_4    (2 << 6)
#define ES8323_VXCLK_DIV_8    (3 << 6)
#define ES8323_VXCLK_DIV_16    (4 << 6)
 
#define ES8323_DAI_HIFI        0
#define ES8323_DAI_VOICE        1
 
#define ES8323_1536FS 1536
#define ES8323_1024FS    1024
#define ES8323_768FS    768
#define ES8323_512FS    512
#define ES8323_384FS    384
#define ES8323_256FS    256
#define ES8323_128FS    128
#endif
 
#endif