175 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2#ifndef WM8776_H_INCLUDED3#define WM8776_H_INCLUDED4 5/*6 * the following register names are from:7 * wm8776.h -- WM8776 ASoC driver8 *9 * Copyright 2009 Wolfson Microelectronics plc10 *11 * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>12 */13 14#define WM8776_HPLVOL 0x0015#define WM8776_HPRVOL 0x0116#define WM8776_HPMASTER 0x0217#define WM8776_DACLVOL 0x0318#define WM8776_DACRVOL 0x0419#define WM8776_DACMASTER 0x0520#define WM8776_PHASESWAP 0x0621#define WM8776_DACCTRL1 0x0722#define WM8776_DACMUTE 0x0823#define WM8776_DACCTRL2 0x0924#define WM8776_DACIFCTRL 0x0a25#define WM8776_ADCIFCTRL 0x0b26#define WM8776_MSTRCTRL 0x0c27#define WM8776_PWRDOWN 0x0d28#define WM8776_ADCLVOL 0x0e29#define WM8776_ADCRVOL 0x0f30#define WM8776_ALCCTRL1 0x1031#define WM8776_ALCCTRL2 0x1132#define WM8776_ALCCTRL3 0x1233#define WM8776_NOISEGATE 0x1334#define WM8776_LIMITER 0x1435#define WM8776_ADCMUX 0x1536#define WM8776_OUTMUX 0x1637#define WM8776_RESET 0x1738 39 40/* HPLVOL/HPRVOL/HPMASTER */41#define WM8776_HPATT_MASK 0x07f42#define WM8776_HPZCEN 0x08043#define WM8776_UPDATE 0x10044 45/* DACLVOL/DACRVOL/DACMASTER */46#define WM8776_DATT_MASK 0x0ff47/*#define WM8776_UPDATE 0x100*/48 49/* PHASESWAP */50#define WM8776_PH_MASK 0x00351 52/* DACCTRL1 */53#define WM8776_DZCEN 0x00154#define WM8776_ATC 0x00255#define WM8776_IZD 0x00456#define WM8776_TOD 0x00857#define WM8776_PL_LEFT_MASK 0x03058#define WM8776_PL_LEFT_MUTE 0x00059#define WM8776_PL_LEFT_LEFT 0x01060#define WM8776_PL_LEFT_RIGHT 0x02061#define WM8776_PL_LEFT_LRMIX 0x03062#define WM8776_PL_RIGHT_MASK 0x0c063#define WM8776_PL_RIGHT_MUTE 0x00064#define WM8776_PL_RIGHT_LEFT 0x04065#define WM8776_PL_RIGHT_RIGHT 0x08066#define WM8776_PL_RIGHT_LRMIX 0x0c067 68/* DACMUTE */69#define WM8776_DMUTE 0x00170 71/* DACCTRL2 */72#define WM8776_DEEMPH 0x00173#define WM8776_DZFM_MASK 0x00674#define WM8776_DZFM_NONE 0x00075#define WM8776_DZFM_LR 0x00276#define WM8776_DZFM_BOTH 0x00477#define WM8776_DZFM_EITHER 0x00678 79/* DACIFCTRL */80#define WM8776_DACFMT_MASK 0x00381#define WM8776_DACFMT_RJUST 0x00082#define WM8776_DACFMT_LJUST 0x00183#define WM8776_DACFMT_I2S 0x00284#define WM8776_DACFMT_DSP 0x00385#define WM8776_DACLRP 0x00486#define WM8776_DACBCP 0x00887#define WM8776_DACWL_MASK 0x03088#define WM8776_DACWL_16 0x00089#define WM8776_DACWL_20 0x01090#define WM8776_DACWL_24 0x02091#define WM8776_DACWL_32 0x03092 93/* ADCIFCTRL */94#define WM8776_ADCFMT_MASK 0x00395#define WM8776_ADCFMT_RJUST 0x00096#define WM8776_ADCFMT_LJUST 0x00197#define WM8776_ADCFMT_I2S 0x00298#define WM8776_ADCFMT_DSP 0x00399#define WM8776_ADCLRP 0x004100#define WM8776_ADCBCP 0x008101#define WM8776_ADCWL_MASK 0x030102#define WM8776_ADCWL_16 0x000103#define WM8776_ADCWL_20 0x010104#define WM8776_ADCWL_24 0x020105#define WM8776_ADCWL_32 0x030106#define WM8776_ADCMCLK 0x040107#define WM8776_ADCHPD 0x100108 109/* MSTRCTRL */110#define WM8776_ADCRATE_MASK 0x007111#define WM8776_ADCRATE_256 0x002112#define WM8776_ADCRATE_384 0x003113#define WM8776_ADCRATE_512 0x004114#define WM8776_ADCRATE_768 0x005115#define WM8776_ADCOSR 0x008116#define WM8776_DACRATE_MASK 0x070117#define WM8776_DACRATE_128 0x000118#define WM8776_DACRATE_192 0x010119#define WM8776_DACRATE_256 0x020120#define WM8776_DACRATE_384 0x030121#define WM8776_DACRATE_512 0x040122#define WM8776_DACRATE_768 0x050123#define WM8776_DACMS 0x080124#define WM8776_ADCMS 0x100125 126/* PWRDOWN */127#define WM8776_PDWN 0x001128#define WM8776_ADCPD 0x002129#define WM8776_DACPD 0x004130#define WM8776_HPPD 0x008131#define WM8776_AINPD 0x040132 133/* ADCLVOL/ADCRVOL */134#define WM8776_AGMASK 0x0ff135#define WM8776_ZCA 0x100136 137/* ALCCTRL1 */138#define WM8776_LCT_MASK 0x00f139#define WM8776_MAXGAIN_MASK 0x070140#define WM8776_LCSEL_MASK 0x180141#define WM8776_LCSEL_LIMITER 0x000142#define WM8776_LCSEL_ALC_RIGHT 0x080143#define WM8776_LCSEL_ALC_LEFT 0x100144#define WM8776_LCSEL_ALC_STEREO 0x180145 146/* ALCCTRL2 */147#define WM8776_HLD_MASK 0x00f148#define WM8776_ALCZC 0x080149#define WM8776_LCEN 0x100150 151/* ALCCTRL3 */152#define WM8776_ATK_MASK 0x00f153#define WM8776_DCY_MASK 0x0f0154 155/* NOISEGATE */156#define WM8776_NGAT 0x001157#define WM8776_NGTH_MASK 0x01c158 159/* LIMITER */160#define WM8776_MAXATTEN_MASK 0x00f161#define WM8776_TRANWIN_MASK 0x070162 163/* ADCMUX */164#define WM8776_AMX_MASK 0x01f165#define WM8776_MUTERA 0x040166#define WM8776_MUTELA 0x080167#define WM8776_LRBOTH 0x100168 169/* OUTMUX */170#define WM8776_MX_DAC 0x001171#define WM8776_MX_AUX 0x002172#define WM8776_MX_BYPASS 0x004173 174#endif175