Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 #ifndef WM8776_H_INCLUDED
0003 #define WM8776_H_INCLUDED
0004 
0005 /*
0006  * the following register names are from:
0007  * wm8776.h  --  WM8776 ASoC driver
0008  *
0009  * Copyright 2009 Wolfson Microelectronics plc
0010  *
0011  * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
0012  */
0013 
0014 #define WM8776_HPLVOL       0x00
0015 #define WM8776_HPRVOL       0x01
0016 #define WM8776_HPMASTER     0x02
0017 #define WM8776_DACLVOL      0x03
0018 #define WM8776_DACRVOL      0x04
0019 #define WM8776_DACMASTER    0x05
0020 #define WM8776_PHASESWAP    0x06
0021 #define WM8776_DACCTRL1     0x07
0022 #define WM8776_DACMUTE      0x08
0023 #define WM8776_DACCTRL2     0x09
0024 #define WM8776_DACIFCTRL    0x0a
0025 #define WM8776_ADCIFCTRL    0x0b
0026 #define WM8776_MSTRCTRL     0x0c
0027 #define WM8776_PWRDOWN      0x0d
0028 #define WM8776_ADCLVOL      0x0e
0029 #define WM8776_ADCRVOL      0x0f
0030 #define WM8776_ALCCTRL1     0x10
0031 #define WM8776_ALCCTRL2     0x11
0032 #define WM8776_ALCCTRL3     0x12
0033 #define WM8776_NOISEGATE    0x13
0034 #define WM8776_LIMITER      0x14
0035 #define WM8776_ADCMUX       0x15
0036 #define WM8776_OUTMUX       0x16
0037 #define WM8776_RESET        0x17
0038 
0039 
0040 /* HPLVOL/HPRVOL/HPMASTER */
0041 #define WM8776_HPATT_MASK   0x07f
0042 #define WM8776_HPZCEN       0x080
0043 #define WM8776_UPDATE       0x100
0044 
0045 /* DACLVOL/DACRVOL/DACMASTER */
0046 #define WM8776_DATT_MASK    0x0ff
0047 /*#define WM8776_UPDATE     0x100*/
0048 
0049 /* PHASESWAP */
0050 #define WM8776_PH_MASK      0x003
0051 
0052 /* DACCTRL1 */
0053 #define WM8776_DZCEN        0x001
0054 #define WM8776_ATC      0x002
0055 #define WM8776_IZD      0x004
0056 #define WM8776_TOD      0x008
0057 #define WM8776_PL_LEFT_MASK 0x030
0058 #define WM8776_PL_LEFT_MUTE 0x000
0059 #define WM8776_PL_LEFT_LEFT 0x010
0060 #define WM8776_PL_LEFT_RIGHT    0x020
0061 #define WM8776_PL_LEFT_LRMIX    0x030
0062 #define WM8776_PL_RIGHT_MASK    0x0c0
0063 #define WM8776_PL_RIGHT_MUTE    0x000
0064 #define WM8776_PL_RIGHT_LEFT    0x040
0065 #define WM8776_PL_RIGHT_RIGHT   0x080
0066 #define WM8776_PL_RIGHT_LRMIX   0x0c0
0067 
0068 /* DACMUTE */
0069 #define WM8776_DMUTE        0x001
0070 
0071 /* DACCTRL2 */
0072 #define WM8776_DEEMPH       0x001
0073 #define WM8776_DZFM_MASK    0x006
0074 #define WM8776_DZFM_NONE    0x000
0075 #define WM8776_DZFM_LR      0x002
0076 #define WM8776_DZFM_BOTH    0x004
0077 #define WM8776_DZFM_EITHER  0x006
0078 
0079 /* DACIFCTRL */
0080 #define WM8776_DACFMT_MASK  0x003
0081 #define WM8776_DACFMT_RJUST 0x000
0082 #define WM8776_DACFMT_LJUST 0x001
0083 #define WM8776_DACFMT_I2S   0x002
0084 #define WM8776_DACFMT_DSP   0x003
0085 #define WM8776_DACLRP       0x004
0086 #define WM8776_DACBCP       0x008
0087 #define WM8776_DACWL_MASK   0x030
0088 #define WM8776_DACWL_16     0x000
0089 #define WM8776_DACWL_20     0x010
0090 #define WM8776_DACWL_24     0x020
0091 #define WM8776_DACWL_32     0x030
0092 
0093 /* ADCIFCTRL */
0094 #define WM8776_ADCFMT_MASK  0x003
0095 #define WM8776_ADCFMT_RJUST 0x000
0096 #define WM8776_ADCFMT_LJUST 0x001
0097 #define WM8776_ADCFMT_I2S   0x002
0098 #define WM8776_ADCFMT_DSP   0x003
0099 #define WM8776_ADCLRP       0x004
0100 #define WM8776_ADCBCP       0x008
0101 #define WM8776_ADCWL_MASK   0x030
0102 #define WM8776_ADCWL_16     0x000
0103 #define WM8776_ADCWL_20     0x010
0104 #define WM8776_ADCWL_24     0x020
0105 #define WM8776_ADCWL_32     0x030
0106 #define WM8776_ADCMCLK      0x040
0107 #define WM8776_ADCHPD       0x100
0108 
0109 /* MSTRCTRL */
0110 #define WM8776_ADCRATE_MASK 0x007
0111 #define WM8776_ADCRATE_256  0x002
0112 #define WM8776_ADCRATE_384  0x003
0113 #define WM8776_ADCRATE_512  0x004
0114 #define WM8776_ADCRATE_768  0x005
0115 #define WM8776_ADCOSR       0x008
0116 #define WM8776_DACRATE_MASK 0x070
0117 #define WM8776_DACRATE_128  0x000
0118 #define WM8776_DACRATE_192  0x010
0119 #define WM8776_DACRATE_256  0x020
0120 #define WM8776_DACRATE_384  0x030
0121 #define WM8776_DACRATE_512  0x040
0122 #define WM8776_DACRATE_768  0x050
0123 #define WM8776_DACMS        0x080
0124 #define WM8776_ADCMS        0x100
0125 
0126 /* PWRDOWN */
0127 #define WM8776_PDWN     0x001
0128 #define WM8776_ADCPD        0x002
0129 #define WM8776_DACPD        0x004
0130 #define WM8776_HPPD     0x008
0131 #define WM8776_AINPD        0x040
0132 
0133 /* ADCLVOL/ADCRVOL */
0134 #define WM8776_AGMASK       0x0ff
0135 #define WM8776_ZCA      0x100
0136 
0137 /* ALCCTRL1 */
0138 #define WM8776_LCT_MASK     0x00f
0139 #define WM8776_MAXGAIN_MASK 0x070
0140 #define WM8776_LCSEL_MASK   0x180
0141 #define WM8776_LCSEL_LIMITER    0x000
0142 #define WM8776_LCSEL_ALC_RIGHT 0x080
0143 #define WM8776_LCSEL_ALC_LEFT   0x100
0144 #define WM8776_LCSEL_ALC_STEREO 0x180
0145 
0146 /* ALCCTRL2 */
0147 #define WM8776_HLD_MASK     0x00f
0148 #define WM8776_ALCZC        0x080
0149 #define WM8776_LCEN     0x100
0150 
0151 /* ALCCTRL3 */
0152 #define WM8776_ATK_MASK     0x00f
0153 #define WM8776_DCY_MASK     0x0f0
0154 
0155 /* NOISEGATE */
0156 #define WM8776_NGAT     0x001
0157 #define WM8776_NGTH_MASK    0x01c
0158 
0159 /* LIMITER */
0160 #define WM8776_MAXATTEN_MASK    0x00f
0161 #define WM8776_TRANWIN_MASK 0x070
0162 
0163 /* ADCMUX */
0164 #define WM8776_AMX_MASK     0x01f
0165 #define WM8776_MUTERA       0x040
0166 #define WM8776_MUTELA       0x080
0167 #define WM8776_LRBOTH       0x100
0168 
0169 /* OUTMUX */
0170 #define WM8776_MX_DAC       0x001
0171 #define WM8776_MX_AUX       0x002
0172 #define WM8776_MX_BYPASS    0x004
0173 
0174 #endif