]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/blame - sound/soc/codecs/da732x.h
Merge branch 'for-next' into for-linus
[mirror_ubuntu-hirsute-kernel.git] / sound / soc / codecs / da732x.h
CommitLineData
d2912cb1 1/* SPDX-License-Identifier: GPL-2.0-only */
48e27874
AT
2/*
3 * da732x.h -- Dialog DA732X ALSA SoC Audio Driver Header File
4 *
5 * Copyright (C) 2012 Dialog Semiconductor GmbH
6 *
7 * Author: Michal Hajduk <Michal.Hajduk@diasemi.com>
48e27874
AT
8 */
9
10#ifndef __DA732X_H_
aa477462 11#define __DA732X_H_
48e27874
AT
12
13#include <sound/soc.h>
14
15/* General */
16#define DA732X_U8_MASK 0xFF
17#define DA732X_4BYTES 4
18#define DA732X_3BYTES 3
19#define DA732X_2BYTES 2
20#define DA732X_1BYTE 1
21#define DA732X_1BYTE_SHIFT 8
22#define DA732X_2BYTES_SHIFT 16
23#define DA732X_3BYTES_SHIFT 24
24#define DA732X_4BYTES_SHIFT 32
25
26#define DA732X_DACS_DIS 0x0
27#define DA732X_HP_DIS 0x0
28#define DA732X_CLEAR_REG 0x0
29
30/* Calibration */
31#define DA732X_DAC_OFFSET_STEP 0x20
32#define DA732X_OUTPUT_OFFSET_STEP 0x80
33#define DA732X_HP_OUT_TRIM_VAL 0x0
34#define DA732X_WAIT_FOR_STABILIZATION 1
35#define DA732X_HPL_DAC 0
36#define DA732X_HPR_DAC 1
37#define DA732X_HP_DACS 2
38#define DA732X_HPL_AMP 0
39#define DA732X_HPR_AMP 1
40#define DA732X_HP_AMPS 2
41
42/* Clock settings */
43#define DA732X_STARTUP_DELAY 100
44#define DA732X_PLL_OUT_196608 196608000
45#define DA732X_PLL_OUT_180634 180633600
46#define DA732X_PLL_OUT_SRM 188620800
47#define DA732X_MCLK_10MHZ 10000000
48#define DA732X_MCLK_20MHZ 20000000
49#define DA732X_MCLK_40MHZ 40000000
50#define DA732X_MCLK_54MHZ 54000000
51#define DA732X_MCLK_RET_0_10MHZ 0
52#define DA732X_MCLK_VAL_0_10MHZ 1
53#define DA732X_MCLK_RET_10_20MHZ 1
54#define DA732X_MCLK_VAL_10_20MHZ 2
55#define DA732X_MCLK_RET_20_40MHZ 2
56#define DA732X_MCLK_VAL_20_40MHZ 4
57#define DA732X_MCLK_RET_40_54MHZ 3
58#define DA732X_MCLK_VAL_40_54MHZ 8
59#define DA732X_DAI_ID1 0
60#define DA732X_DAI_ID2 1
61#define DA732X_SRCCLK_PLL 0
62#define DA732X_SRCCLK_MCLK 1
63
64#define DA732X_LIN_LP_VOL 0x4F
65#define DA732X_LP_VOL 0x40
66
67/* Kcontrols */
68#define DA732X_DAC_EN_MAX 2
69#define DA732X_ADCL_MUX_MAX 2
70#define DA732X_ADCR_MUX_MAX 3
71#define DA732X_HPF_MODE_MAX 3
72#define DA732X_HPF_MODE_SHIFT 4
73#define DA732X_HPF_MUSIC_SHIFT 0
74#define DA732X_HPF_MUSIC_MAX 4
75#define DA732X_HPF_VOICE_SHIFT 4
76#define DA732X_HPF_VOICE_MAX 8
77#define DA732X_EQ_EN_MAX 1
78#define DA732X_HPF_VOICE 1
79#define DA732X_HPF_MUSIC 2
80#define DA732X_HPF_DISABLED 0
81#define DA732X_NO_INVERT 0
82#define DA732X_INVERT 1
83#define DA732X_SWITCH_MAX 1
84#define DA732X_ENABLE_CP 1
85#define DA732X_DISABLE_CP 0
86#define DA732X_DISABLE_ALL_CLKS 0
87#define DA732X_RESET_ADCS 0
88
89/* dB values */
90#define DA732X_MIC_VOL_DB_MIN 0
91#define DA732X_MIC_VOL_DB_INC 50
92#define DA732X_MIC_PRE_VOL_DB_MIN 0
93#define DA732X_MIC_PRE_VOL_DB_INC 600
94#define DA732X_AUX_VOL_DB_MIN -6000
95#define DA732X_AUX_VOL_DB_INC 150
96#define DA732X_HP_VOL_DB_MIN -2250
97#define DA732X_HP_VOL_DB_INC 150
98#define DA732X_LIN2_VOL_DB_MIN -1650
99#define DA732X_LIN2_VOL_DB_INC 150
100#define DA732X_LIN3_VOL_DB_MIN -1650
101#define DA732X_LIN3_VOL_DB_INC 150
102#define DA732X_LIN4_VOL_DB_MIN -2250
103#define DA732X_LIN4_VOL_DB_INC 150
104#define DA732X_EQ_BAND_VOL_DB_MIN -1050
105#define DA732X_EQ_BAND_VOL_DB_INC 150
106#define DA732X_DAC_VOL_DB_MIN -7725
107#define DA732X_DAC_VOL_DB_INC 75
108#define DA732X_ADC_VOL_DB_MIN 0
109#define DA732X_ADC_VOL_DB_INC -1
110#define DA732X_EQ_OVERALL_VOL_DB_MIN -1800
111#define DA732X_EQ_OVERALL_VOL_DB_INC 600
112
48e27874
AT
113enum da732x_sysctl {
114 DA732X_SR_8KHZ = 0x1,
115 DA732X_SR_11_025KHZ = 0x2,
116 DA732X_SR_12KHZ = 0x3,
117 DA732X_SR_16KHZ = 0x5,
118 DA732X_SR_22_05KHZ = 0x6,
119 DA732X_SR_24KHZ = 0x7,
120 DA732X_SR_32KHZ = 0x9,
121 DA732X_SR_44_1KHZ = 0xA,
122 DA732X_SR_48KHZ = 0xB,
123 DA732X_SR_88_1KHZ = 0xE,
124 DA732X_SR_96KHZ = 0xF,
125};
126
127#endif /* __DA732X_H_ */