~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/sound/soc/codecs/es8311.h

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /sound/soc/codecs/es8311.h (Architecture mips) and /sound/soc/codecs/es8311.h (Architecture sparc)


  1 /* SPDX-License-Identifier: GPL-2.0-only */         1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 /*                                                  2 /*
  3  * es8311.c -- es8311 ALSA SoC audio driver         3  * es8311.c -- es8311 ALSA SoC audio driver
  4  *                                                  4  *
  5  * Copyright (C) 2024 Matteo Martelli <matteom      5  * Copyright (C) 2024 Matteo Martelli <matteomartelli3@gmail.com>
  6  *                                                  6  *
  7  * Author: Matteo Martelli <matteomartelli3@gm      7  * Author: Matteo Martelli <matteomartelli3@gmail.com>
  8  */                                                 8  */
  9                                                     9 
 10 #ifndef _ES8311_H                                  10 #ifndef _ES8311_H
 11 #define _ES8311_H                                  11 #define _ES8311_H
 12                                                    12 
 13 #include <linux/bitops.h>                          13 #include <linux/bitops.h>
 14                                                    14 
 15 #define ES8311_RESET 0x00                          15 #define ES8311_RESET 0x00
 16 #define ES8311_RESET_CSM_ON BIT(7)                 16 #define ES8311_RESET_CSM_ON BIT(7)
 17 #define ES8311_RESET_MSC BIT(6)                    17 #define ES8311_RESET_MSC BIT(6)
 18 #define ES8311_RESET_RST_MASK GENMASK(4, 0)        18 #define ES8311_RESET_RST_MASK GENMASK(4, 0)
 19                                                    19 
 20 /* Clock Manager Registers */                      20 /* Clock Manager Registers */
 21 #define ES8311_CLKMGR1 0x01                        21 #define ES8311_CLKMGR1 0x01
 22 #define ES8311_CLKMGR1_MCLK_SEL BIT(7)             22 #define ES8311_CLKMGR1_MCLK_SEL BIT(7)
 23 #define ES8311_CLKMGR1_MCLK_ON BIT(5)              23 #define ES8311_CLKMGR1_MCLK_ON BIT(5)
 24 #define ES8311_CLKMGR1_BCLK_ON BIT(4)              24 #define ES8311_CLKMGR1_BCLK_ON BIT(4)
 25 #define ES8311_CLKMGR1_CLKADC_ON_SHIFT 3           25 #define ES8311_CLKMGR1_CLKADC_ON_SHIFT 3
 26 #define ES8311_CLKMGR1_CLKDAC_ON_SHIFT 2           26 #define ES8311_CLKMGR1_CLKDAC_ON_SHIFT 2
 27 #define ES8311_CLKMGR1_ANACLKADC_ON_SHIFT 1        27 #define ES8311_CLKMGR1_ANACLKADC_ON_SHIFT 1
 28 #define ES8311_CLKMGR1_ANACLKDAC_ON_SHIFT 0        28 #define ES8311_CLKMGR1_ANACLKDAC_ON_SHIFT 0
 29 #define ES8311_CLKMGR2 0x02                        29 #define ES8311_CLKMGR2 0x02
 30 #define ES8311_CLKMGR2_DIV_PRE_MASK GENMASK(7,     30 #define ES8311_CLKMGR2_DIV_PRE_MASK GENMASK(7, 5)
 31 #define ES8311_CLKMGR2_DIV_PRE_SHIFT 5             31 #define ES8311_CLKMGR2_DIV_PRE_SHIFT 5
 32 #define ES8311_CLKMGR2_DIV_PRE_MAX 0x07            32 #define ES8311_CLKMGR2_DIV_PRE_MAX 0x07
 33 #define ES8311_CLKMGR2_MULT_PRE_MASK GENMASK(4     33 #define ES8311_CLKMGR2_MULT_PRE_MASK GENMASK(4, 3)
 34 #define ES8311_CLKMGR2_MULT_PRE_SHIFT 3            34 #define ES8311_CLKMGR2_MULT_PRE_SHIFT 3
 35 #define ES8311_CLKMGR3 0x03                        35 #define ES8311_CLKMGR3 0x03
 36 #define ES8311_CLKMGR4 0x04                        36 #define ES8311_CLKMGR4 0x04
 37 #define ES8311_CLKMGR5 0x05                        37 #define ES8311_CLKMGR5 0x05
 38 #define ES8311_CLKMGR5_ADC_DIV_MASK GENMASK(7,     38 #define ES8311_CLKMGR5_ADC_DIV_MASK GENMASK(7, 4)
 39 #define ES8311_CLKMGR5_ADC_DIV_SHIFT 4             39 #define ES8311_CLKMGR5_ADC_DIV_SHIFT 4
 40 #define ES8311_CLKMGR5_DAC_DIV_MASK GENMASK(3,     40 #define ES8311_CLKMGR5_DAC_DIV_MASK GENMASK(3, 0)
 41 #define ES8311_CLKMGR5_DAC_DIV_SHIFT 0             41 #define ES8311_CLKMGR5_DAC_DIV_SHIFT 0
 42 #define ES8311_CLKMGR6 0x06                        42 #define ES8311_CLKMGR6 0x06
 43 #define ES8311_CLKMGR6_BCLK_INV BIT(5)             43 #define ES8311_CLKMGR6_BCLK_INV BIT(5)
 44 #define ES8311_CLKMGR6_DIV_BCLK_MASK GENMASK(4     44 #define ES8311_CLKMGR6_DIV_BCLK_MASK GENMASK(4, 0)
 45 #define ES8311_CLKMGR7 0x07                        45 #define ES8311_CLKMGR7 0x07
 46 #define ES8311_CLKMGR7_LRCLK_DIV_H_MASK GENMAS     46 #define ES8311_CLKMGR7_LRCLK_DIV_H_MASK GENMASK(3, 0)
 47 #define ES8311_CLKMGR8 0x08                        47 #define ES8311_CLKMGR8 0x08
 48 #define ES8311_CLKMGR_LRCLK_DIV_MAX 0x0FFF         48 #define ES8311_CLKMGR_LRCLK_DIV_MAX 0x0FFF
 49                                                    49 
 50 /* SDP Mode Registers */                           50 /* SDP Mode Registers */
 51 #define ES8311_SDP_IN 0x09                         51 #define ES8311_SDP_IN 0x09
 52 #define ES8311_SDP_IN_SEL_SHIFT 7                  52 #define ES8311_SDP_IN_SEL_SHIFT 7
 53 #define ES8311_SDP_OUT 0x0A                        53 #define ES8311_SDP_OUT 0x0A
 54 /* Following values are the same for both SPD_     54 /* Following values are the same for both SPD_IN and SDP_OUT */
 55 #define ES8311_SDP_MUTE_SHIFT 6                    55 #define ES8311_SDP_MUTE_SHIFT 6
 56 #define ES8311_SDP_LRP BIT(5)                      56 #define ES8311_SDP_LRP BIT(5)
 57 #define ES8311_SDP_WL_MASK GENMASK(4, 2)           57 #define ES8311_SDP_WL_MASK GENMASK(4, 2)
 58 #define ES8311_SDP_WL_SHIFT 2                      58 #define ES8311_SDP_WL_SHIFT 2
 59 #define ES8311_SDP_WL_24 0x00                      59 #define ES8311_SDP_WL_24 0x00
 60 #define ES8311_SDP_WL_20 0x01                      60 #define ES8311_SDP_WL_20 0x01
 61 #define ES8311_SDP_WL_18 0x02                      61 #define ES8311_SDP_WL_18 0x02
 62 #define ES8311_SDP_WL_16 0x03                      62 #define ES8311_SDP_WL_16 0x03
 63 #define ES8311_SDP_WL_32 0x04                      63 #define ES8311_SDP_WL_32 0x04
 64 #define ES8311_SDP_FMT_MASK GENMASK(1, 0)          64 #define ES8311_SDP_FMT_MASK GENMASK(1, 0)
 65 #define ES8311_SDP_FMT_I2S 0x00                    65 #define ES8311_SDP_FMT_I2S 0x00
 66 #define ES8311_SDP_FMT_LEFT_J 0x01                 66 #define ES8311_SDP_FMT_LEFT_J 0x01
 67 #define ES8311_SDP_FMT_DSP 0x03                    67 #define ES8311_SDP_FMT_DSP 0x03
 68                                                    68 
 69 /* System registers */                             69 /* System registers */
 70 #define ES8311_SYS1 0x0B                           70 #define ES8311_SYS1 0x0B
 71 #define ES8311_SYS2 0x0C                           71 #define ES8311_SYS2 0x0C
 72 #define ES8311_SYS3 0x0D                           72 #define ES8311_SYS3 0x0D
 73 #define ES8311_SYS3_PDN_ANA_SHIFT 7                73 #define ES8311_SYS3_PDN_ANA_SHIFT 7
 74 #define ES8311_SYS3_PDN_IBIASGEN_SHIFT 6           74 #define ES8311_SYS3_PDN_IBIASGEN_SHIFT 6
 75 #define ES8311_SYS3_PDN_ADCBIASGEN_SHIFT 5         75 #define ES8311_SYS3_PDN_ADCBIASGEN_SHIFT 5
 76 #define ES8311_SYS3_PDN_ADCVREFGEN_SHIFT 4         76 #define ES8311_SYS3_PDN_ADCVREFGEN_SHIFT 4
 77 #define ES8311_SYS3_PDN_DACVREFGEN_SHIFT 3         77 #define ES8311_SYS3_PDN_DACVREFGEN_SHIFT 3
 78 #define ES8311_SYS3_PDN_VREF_SHIFT 2               78 #define ES8311_SYS3_PDN_VREF_SHIFT 2
 79 #define ES8311_SYS3_PDN_VMIDSEL_MASK GENMASK(1     79 #define ES8311_SYS3_PDN_VMIDSEL_MASK GENMASK(1, 0)
 80 #define ES8311_SYS3_PDN_VMIDSEL_POWER_DOWN 0       80 #define ES8311_SYS3_PDN_VMIDSEL_POWER_DOWN 0
 81 #define ES8311_SYS3_PDN_VMIDSEL_STARTUP_NORMAL     81 #define ES8311_SYS3_PDN_VMIDSEL_STARTUP_NORMAL_SPEED 1
 82 #define ES8311_SYS3_PDN_VMIDSEL_NORMAL_OPERATI     82 #define ES8311_SYS3_PDN_VMIDSEL_NORMAL_OPERATION 2
 83 #define ES8311_SYS3_PDN_VMIDSEL_STARTUP_FAST_S     83 #define ES8311_SYS3_PDN_VMIDSEL_STARTUP_FAST_SPEED 3
 84 #define ES8311_SYS4 0x0E                           84 #define ES8311_SYS4 0x0E
 85 #define ES8311_SYS4_PDN_PGA_SHIFT 6                85 #define ES8311_SYS4_PDN_PGA_SHIFT 6
 86 #define ES8311_SYS4_PDN_MOD_SHIFT 5                86 #define ES8311_SYS4_PDN_MOD_SHIFT 5
 87 #define ES8311_SYS5 0x0F                           87 #define ES8311_SYS5 0x0F
 88 #define ES8311_SYS6 0x10                           88 #define ES8311_SYS6 0x10
 89 #define ES8311_SYS7 0x11                           89 #define ES8311_SYS7 0x11
 90 #define ES8311_SYS8 0x12                           90 #define ES8311_SYS8 0x12
 91 #define ES8311_SYS8_PDN_DAC_SHIFT 1                91 #define ES8311_SYS8_PDN_DAC_SHIFT 1
 92 #define ES8311_SYS9 0x13                           92 #define ES8311_SYS9 0x13
 93 #define ES8311_SYS9_HPSW_SHIFT 4                   93 #define ES8311_SYS9_HPSW_SHIFT 4
 94 #define ES8311_SYS10 0x14                          94 #define ES8311_SYS10 0x14
 95 #define ES8311_SYS10_DMIC_ON_SHIFT 6               95 #define ES8311_SYS10_DMIC_ON_SHIFT 6
 96 #define ES8311_SYS10_LINESEL_SHIFT 4               96 #define ES8311_SYS10_LINESEL_SHIFT 4
 97 #define ES8311_SYS10_PGAGAIN_SHIFT 0               97 #define ES8311_SYS10_PGAGAIN_SHIFT 0
 98 #define ES8311_SYS10_PGAGAIN_MAX 0x0A              98 #define ES8311_SYS10_PGAGAIN_MAX 0x0A
 99                                                    99 
100 /* ADC Registers*/                                100 /* ADC Registers*/
101 #define ES8311_ADC1 0x15                          101 #define ES8311_ADC1 0x15
102 #define ES8311_ADC1_RAMPRATE_SHIFT 4              102 #define ES8311_ADC1_RAMPRATE_SHIFT 4
103 #define ES8311_ADC2 0x16                          103 #define ES8311_ADC2 0x16
104 #define ES8311_ADC2_INV_SHIFT 4                   104 #define ES8311_ADC2_INV_SHIFT 4
105 #define ES8311_ADC2_SCALE_SHIFT 0                 105 #define ES8311_ADC2_SCALE_SHIFT 0
106 #define ES8311_ADC2_SCALE_MAX 0x07                106 #define ES8311_ADC2_SCALE_MAX 0x07
107 #define ES8311_ADC3 0x17                          107 #define ES8311_ADC3 0x17
108 #define ES8311_ADC3_VOLUME_SHIFT 0                108 #define ES8311_ADC3_VOLUME_SHIFT 0
109 #define ES8311_ADC3_VOLUME_MAX 0xFF               109 #define ES8311_ADC3_VOLUME_MAX 0xFF
110 #define ES8311_ADC4 0x18                          110 #define ES8311_ADC4 0x18
111 #define ES8311_ADC4_ALC_EN_SHIFT 7                111 #define ES8311_ADC4_ALC_EN_SHIFT 7
112 #define ES8311_ADC4_AUTOMUTE_EN_SHIFT 6           112 #define ES8311_ADC4_AUTOMUTE_EN_SHIFT 6
113 #define ES8311_ADC4_ALC_WINSIZE_SHIFT 0           113 #define ES8311_ADC4_ALC_WINSIZE_SHIFT 0
114 #define ES8311_ADC5 0x19                          114 #define ES8311_ADC5 0x19
115 #define ES8311_ADC5_ALC_MAXLEVEL_SHIFT 4          115 #define ES8311_ADC5_ALC_MAXLEVEL_SHIFT 4
116 #define ES8311_ADC5_ALC_MAXLEVEL_MAX 0x0F         116 #define ES8311_ADC5_ALC_MAXLEVEL_MAX 0x0F
117 #define ES8311_ADC5_ALC_MINLEVEL_SHIFT 0          117 #define ES8311_ADC5_ALC_MINLEVEL_SHIFT 0
118 #define ES8311_ADC5_ALC_MINLEVEL_MAX 0x0F         118 #define ES8311_ADC5_ALC_MINLEVEL_MAX 0x0F
119 #define ES8311_ADC6 0x1A                          119 #define ES8311_ADC6 0x1A
120 #define ES8311_ADC6_AUTOMUTE_WS_SHIFT 4           120 #define ES8311_ADC6_AUTOMUTE_WS_SHIFT 4
121 #define ES8311_ADC6_AUTOMUTE_NG_SHIFT 0           121 #define ES8311_ADC6_AUTOMUTE_NG_SHIFT 0
122 #define ES8311_ADC6_AUTOMUTE_NG_MAX 0x0F          122 #define ES8311_ADC6_AUTOMUTE_NG_MAX 0x0F
123                                                   123 
124 #define ES8311_ADC7 0x1B                          124 #define ES8311_ADC7 0x1B
125 #define ES8311_ADC7_AUTOMUTE_VOL_SHIFT 5          125 #define ES8311_ADC7_AUTOMUTE_VOL_SHIFT 5
126 #define ES8311_ADC7_AUTOMUTE_VOL_MAX 0x07         126 #define ES8311_ADC7_AUTOMUTE_VOL_MAX 0x07
127 #define ES8311_ADC8 0x1C                          127 #define ES8311_ADC8 0x1C
128 #define ES8311_ADC8_EQBYPASS_SHIFT 6              128 #define ES8311_ADC8_EQBYPASS_SHIFT 6
129 #define ES8311_ADC8_HPF_SHIFT 5                   129 #define ES8311_ADC8_HPF_SHIFT 5
130                                                   130 
131 /* DAC Registers */                               131 /* DAC Registers */
132 #define ES8311_DAC1 0x31                          132 #define ES8311_DAC1 0x31
133 #define ES8311_DAC1_DAC_DSMMUTE BIT(6)            133 #define ES8311_DAC1_DAC_DSMMUTE BIT(6)
134 #define ES8311_DAC1_DAC_DEMMUTE BIT(5)            134 #define ES8311_DAC1_DAC_DEMMUTE BIT(5)
135 #define ES8311_DAC2 0x32                          135 #define ES8311_DAC2 0x32
136 #define ES8311_DAC2_VOLUME_MAX 0xFF               136 #define ES8311_DAC2_VOLUME_MAX 0xFF
137 #define ES8311_DAC3 0x33                          137 #define ES8311_DAC3 0x33
138 #define ES8311_DAC4 0x34                          138 #define ES8311_DAC4 0x34
139 #define ES8311_DAC4_DRC_EN_SHIFT 7                139 #define ES8311_DAC4_DRC_EN_SHIFT 7
140 #define ES8311_DAC4_DRC_WINSIZE_SHIFT 0           140 #define ES8311_DAC4_DRC_WINSIZE_SHIFT 0
141 #define ES8311_DAC5 0x35                          141 #define ES8311_DAC5 0x35
142 #define ES8311_DAC5_DRC_MAXLEVEL_SHIFT 4          142 #define ES8311_DAC5_DRC_MAXLEVEL_SHIFT 4
143 #define ES8311_DAC5_DRC_MAXLEVEL_MAX 0x0F         143 #define ES8311_DAC5_DRC_MAXLEVEL_MAX 0x0F
144 #define ES8311_DAC5_DRC_MINLEVEL_SHIFT 0          144 #define ES8311_DAC5_DRC_MINLEVEL_SHIFT 0
145 #define ES8311_DAC5_DRC_MINLEVEL_MAX 0x0F         145 #define ES8311_DAC5_DRC_MINLEVEL_MAX 0x0F
146 #define ES8311_DAC6 0x37                          146 #define ES8311_DAC6 0x37
147 #define ES8311_DAC6_RAMPRATE_SHIFT 4              147 #define ES8311_DAC6_RAMPRATE_SHIFT 4
148 #define ES8311_DAC6_EQBYPASS_SHIFT 3              148 #define ES8311_DAC6_EQBYPASS_SHIFT 3
149                                                   149 
150 /* GPIO Registers */                              150 /* GPIO Registers */
151 #define ES8311_GPIO 0x44                          151 #define ES8311_GPIO 0x44
152 #define ES8311_GPIO_ADC2DAC_SEL_SHIFT 7           152 #define ES8311_GPIO_ADC2DAC_SEL_SHIFT 7
153 #define ES8311_GPIO_ADCDAT_SEL_SHIFT 4            153 #define ES8311_GPIO_ADCDAT_SEL_SHIFT 4
154                                                   154 
155 /* Chip Info Registers */                         155 /* Chip Info Registers */
156 #define ES8311_CHIPID1 0xFD /* 0x83 */            156 #define ES8311_CHIPID1 0xFD /* 0x83 */
157 #define ES8311_CHIPID2 0xFE /* 0x11 */            157 #define ES8311_CHIPID2 0xFE /* 0x11 */
158 #define ES8311_CHIPVER 0xFF                       158 #define ES8311_CHIPVER 0xFF
159                                                   159 
160 #define ES8311_REG_MAX 0xFF                       160 #define ES8311_REG_MAX 0xFF
161                                                   161 
162 #endif                                            162 #endif
163                                                   163 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php