Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /*
0003  * wm8978.h     --  codec driver for WM8978
0004  *
0005  * Copyright 2009 Guennadi Liakhovetski <g.liakhovetski@gmx.de>
0006  */
0007 
0008 #ifndef __WM8978_H__
0009 #define __WM8978_H__
0010 
0011 /*
0012  * Register values.
0013  */
0014 #define WM8978_RESET                0x00
0015 #define WM8978_POWER_MANAGEMENT_1       0x01
0016 #define WM8978_POWER_MANAGEMENT_2       0x02
0017 #define WM8978_POWER_MANAGEMENT_3       0x03
0018 #define WM8978_AUDIO_INTERFACE          0x04
0019 #define WM8978_COMPANDING_CONTROL       0x05
0020 #define WM8978_CLOCKING             0x06
0021 #define WM8978_ADDITIONAL_CONTROL       0x07
0022 #define WM8978_GPIO_CONTROL         0x08
0023 #define WM8978_JACK_DETECT_CONTROL_1        0x09
0024 #define WM8978_DAC_CONTROL          0x0A
0025 #define WM8978_LEFT_DAC_DIGITAL_VOLUME      0x0B
0026 #define WM8978_RIGHT_DAC_DIGITAL_VOLUME     0x0C
0027 #define WM8978_JACK_DETECT_CONTROL_2        0x0D
0028 #define WM8978_ADC_CONTROL          0x0E
0029 #define WM8978_LEFT_ADC_DIGITAL_VOLUME      0x0F
0030 #define WM8978_RIGHT_ADC_DIGITAL_VOLUME     0x10
0031 #define WM8978_EQ1              0x12
0032 #define WM8978_EQ2              0x13
0033 #define WM8978_EQ3              0x14
0034 #define WM8978_EQ4              0x15
0035 #define WM8978_EQ5              0x16
0036 #define WM8978_DAC_LIMITER_1            0x18
0037 #define WM8978_DAC_LIMITER_2            0x19
0038 #define WM8978_NOTCH_FILTER_1           0x1b
0039 #define WM8978_NOTCH_FILTER_2           0x1c
0040 #define WM8978_NOTCH_FILTER_3           0x1d
0041 #define WM8978_NOTCH_FILTER_4           0x1e
0042 #define WM8978_ALC_CONTROL_1            0x20
0043 #define WM8978_ALC_CONTROL_2            0x21
0044 #define WM8978_ALC_CONTROL_3            0x22
0045 #define WM8978_NOISE_GATE           0x23
0046 #define WM8978_PLL_N                0x24
0047 #define WM8978_PLL_K1               0x25
0048 #define WM8978_PLL_K2               0x26
0049 #define WM8978_PLL_K3               0x27
0050 #define WM8978_3D_CONTROL           0x29
0051 #define WM8978_BEEP_CONTROL         0x2b
0052 #define WM8978_INPUT_CONTROL            0x2c
0053 #define WM8978_LEFT_INP_PGA_CONTROL     0x2d
0054 #define WM8978_RIGHT_INP_PGA_CONTROL        0x2e
0055 #define WM8978_LEFT_ADC_BOOST_CONTROL       0x2f
0056 #define WM8978_RIGHT_ADC_BOOST_CONTROL      0x30
0057 #define WM8978_OUTPUT_CONTROL           0x31
0058 #define WM8978_LEFT_MIXER_CONTROL       0x32
0059 #define WM8978_RIGHT_MIXER_CONTROL      0x33
0060 #define WM8978_LOUT1_HP_CONTROL         0x34
0061 #define WM8978_ROUT1_HP_CONTROL         0x35
0062 #define WM8978_LOUT2_SPK_CONTROL        0x36
0063 #define WM8978_ROUT2_SPK_CONTROL        0x37
0064 #define WM8978_OUT3_MIXER_CONTROL       0x38
0065 #define WM8978_OUT4_MIXER_CONTROL       0x39
0066 
0067 #define WM8978_MAX_REGISTER         0x39
0068 
0069 #define WM8978_CACHEREGNUM          58
0070 
0071 /* Clock divider Id's */
0072 enum wm8978_clk_id {
0073     WM8978_OPCLKRATE,
0074     WM8978_BCLKDIV,
0075 };
0076 
0077 enum wm8978_sysclk_src {
0078     WM8978_MCLK = 0,
0079     WM8978_PLL,
0080 };
0081 
0082 #endif  /* __WM8978_H__ */