xref: /linux/sound/soc/codecs/es8375.h (revision a9e6060bb2a6cae6d43a98ec0794844ad01273d3)
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * ES8375.h  --  ES8375 ALSA SoC Audio Codec
4 *
5 * Authors:
6 *
7 * Based on ES8375.h by Michael Zhang
8 */
9 #ifndef _ES8375_H
10 #define _ES8375_H
11 
12 // Registors
13 #define ES8375_RESET1              0x00
14 #define ES8375_MCLK_SEL            0x01
15 #define ES8375_CLK_MGR2            0x02
16 #define ES8375_CLK_MGR3            0x03
17 #define ES8375_CLK_MGR4            0x04
18 #define ES8375_CLK_MGR5            0x05
19 #define ES8375_CLK_MGR6            0x06
20 #define ES8375_CLK_MGR7            0x07
21 #define ES8375_CLK_MGR8            0x08
22 #define ES8375_CLK_MGR9            0x09
23 #define ES8375_CLK_MGR10           0x0A
24 #define ES8375_CLK_MGR11           0x0B
25 #define ES8375_CLK_MGR12           0x0C
26 #define ES8375_DIV_SPKCLK          0x0E
27 #define ES8375_CSM1                0x0F
28 #define ES8375_CSM2                0x10
29 #define ES8375_VMID_CHARGE2        0x11
30 #define ES8375_VMID_CHARGE3        0x12
31 #define ES8375_SDP                 0x15
32 #define ES8375_SDP2                0x16
33 #define ES8375_ADC1                0x17
34 #define ES8375_ADC2                0x18
35 #define ES8375_ADC_OSR_GAIN        0x19
36 #define ES8375_ADC_VOLUME          0x1A
37 #define ES8375_ADC_AUTOMUTE        0x1B
38 #define ES8375_ADC_AUTOMUTE_ATTN   0x1C
39 #define ES8375_HPF1                0x1D
40 #define ES8375_DAC1                0x1F
41 #define ES8375_DAC2                0x20
42 #define ES8375_DAC_VOLUME          0x21
43 #define ES8375_DAC_VPPSCALE        0x22
44 #define ES8375_DAC_AUTOMUTE1       0x23
45 #define ES8375_DAC_AUTOMUTE        0x24
46 #define ES8375_DAC_CAL             0x25
47 #define ES8375_DAC_OTP             0x27
48 #define ES8375_ANALOG_SPK1         0x28
49 #define ES8375_ANALOG_SPK2         0x29
50 #define ES8375_VMID_SEL            0x2D
51 #define ES8375_ANALOG1             0x2E
52 #define ES8375_ANALOG2             0x32
53 #define ES8375_ANALOG3             0x37
54 #define ES8375_ADC2DAC_CLKTRI      0xF8
55 #define ES8375_SYS_CTRL2           0xF9
56 #define ES8375_FLAGS2              0xFB
57 #define ES8375_SPK_OFFSET          0xFC
58 #define ES8375_CHIP_ID1            0xFD
59 #define ES8375_CHIP_ID0            0xFE
60 #define ES8375_CHIP_VERSION        0xFF
61 
62 // Bit Shifts
63 #define ADC_OSR_GAIN_SHIFT_0        0
64 #define ADC_RAMPRATE_SHIFT_0        0
65 #define ADC_VOLUME_SHIFT_0          0
66 #define ADC_AUTOMUTE_NG_SHIFT_0     0
67 #define ADC_AUTOMUTE_ATTN_SHIFT_0   0
68 #define DAC_RAMPRATE_SHIFT_0        0
69 #define DAC_VOLUME_SHIFT_0          0
70 #define DAC_VPPSCALE_SHIFT_0        0
71 #define DAC_AUTOMUTE_NG_SHIFT_0     0
72 #define DAC_AUTOMUTE_ATTN_SHIFT_0   0
73 #define DMIC_GAIN_SHIFT_2           2
74 #define ADC_AUTOMUTE_WS_SHIFT_3     3
75 #define DMIC_POL_SHIFT_4            4
76 #define DAC_RAMCLR_SHIFT_4          4
77 #define ES8375_EN_MODL_SHIFT_4      4
78 #define ADC_RAMCLR_SHIFT_5          5
79 #define ADC_HPF_SHIFT_5             5
80 #define DAC_INV_SHIFT_5             5
81 #define DAC_AUTOMUTE_WS_SHIFT_5     5
82 #define ES8375_EN_PGAL_SHIFT_5      5
83 #define ES8375_ADC_P2S_MUTE_SHIFT_5 5
84 #define ADC_INV_SHIFT_6             6
85 #define DAC_DEMMUTE_SHIFT_6         6
86 #define ES8375_DAC_S2P_MUTE_SHIFT_6 6
87 #define ADC_SRC_SHIFT_7             7
88 #define ADC_AUTOMUTE_SHIFT_7        7
89 #define DAC_DSMMUTE_SHIFT_7         7
90 #define DAC_AUTOMUTE_EN_SHIFT_7     7
91 
92 // Function values
93 #define ES8375_ADC_OSR_GAIN_MAX         0x3F
94 #define ES8375_DMIC_GAIN_MAX            0x04
95 #define ES8375_ADC_AUTOMUTE_ATTN_MAX    0x1F
96 #define ES8375_AUTOMUTE_NG_MAX          0x07
97 #define ES8375_ADC_VOLUME_MAX           0xFF
98 #define ES8375_DAC_VOLUME_MAX           0xFF
99 #define ES8375_DAC_VPPSCALE_MAX         0x3F
100 #define ES8375_DAC_AUTOMUTE_ATTN_MAX    0x17
101 #define ES8375_REG_MAX                  0xFF
102 
103 enum ES8375_supplies {
104 	ES8375_SUPPLY_VD = 0,
105 	ES8375_SUPPLY_VA,
106 };
107 
108 // Properties
109 #define ES8375_3V3  1
110 #define ES8375_1V8  0
111 
112 #define ES8375_MCLK_PIN	0
113 #define ES8375_BCLK_PIN 1
114 #define ES8375_MCLK_SOURCE	ES8375_MCLK_PIN
115 
116 #define DMIC_POSITIVE_EDGE  0
117 #define DMIC_NEGATIVE_EDGE  1
118 #define DMIC_POL  DMIC_POSITIVE_EDGE
119 
120 #define PA_SHUTDOWN     0
121 #define PA_ENABLE       1
122 
123 #endif
124