1/* SPDX-License-Identifier: GPL-2.0-only */
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>
8 */
9
10#ifndef __DA732X_H_
11#define __DA732X_H_
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_VAL_0_10MHZ 0
52#define DA732X_MCLK_VAL_10_20MHZ 1
53#define DA732X_MCLK_VAL_20_40MHZ 2
54#define DA732X_MCLK_VAL_40_54MHZ 3
55#define DA732X_DAI_ID1 0
56#define DA732X_DAI_ID2 1
57#define DA732X_SRCCLK_PLL 0
58#define DA732X_SRCCLK_MCLK 1
59
60#define DA732X_LIN_LP_VOL 0x4F
61#define DA732X_LP_VOL 0x40
62
63/* Kcontrols */
64#define DA732X_DAC_EN_MAX 2
65#define DA732X_ADCL_MUX_MAX 2
66#define DA732X_ADCR_MUX_MAX 3
67#define DA732X_HPF_MODE_MAX 3
68#define DA732X_HPF_MODE_SHIFT 4
69#define DA732X_HPF_MUSIC_SHIFT 0
70#define DA732X_HPF_MUSIC_MAX 4
71#define DA732X_HPF_VOICE_SHIFT 4
72#define DA732X_HPF_VOICE_MAX 8
73#define DA732X_EQ_EN_MAX 1
74#define DA732X_HPF_VOICE 1
75#define DA732X_HPF_MUSIC 2
76#define DA732X_HPF_DISABLED 0
77#define DA732X_NO_INVERT 0
78#define DA732X_INVERT 1
79#define DA732X_SWITCH_MAX 1
80#define DA732X_ENABLE_CP 1
81#define DA732X_DISABLE_CP 0
82#define DA732X_DISABLE_ALL_CLKS 0
83#define DA732X_RESET_ADCS 0
84
85/* dB values */
86#define DA732X_MIC_VOL_DB_MIN 0
87#define DA732X_MIC_VOL_DB_INC 50
88#define DA732X_MIC_PRE_VOL_DB_MIN 0
89#define DA732X_MIC_PRE_VOL_DB_INC 600
90#define DA732X_AUX_VOL_DB_MIN -6000
91#define DA732X_AUX_VOL_DB_INC 150
92#define DA732X_HP_VOL_DB_MIN -2250
93#define DA732X_HP_VOL_DB_INC 150
94#define DA732X_LIN2_VOL_DB_MIN -1650
95#define DA732X_LIN2_VOL_DB_INC 150
96#define DA732X_LIN3_VOL_DB_MIN -1650
97#define DA732X_LIN3_VOL_DB_INC 150
98#define DA732X_LIN4_VOL_DB_MIN -2250
99#define DA732X_LIN4_VOL_DB_INC 150
100#define DA732X_EQ_BAND_VOL_DB_MIN -1050
101#define DA732X_EQ_BAND_VOL_DB_INC 150
102#define DA732X_DAC_VOL_DB_MIN -7725
103#define DA732X_DAC_VOL_DB_INC 75
104#define DA732X_ADC_VOL_DB_MIN 0
105#define DA732X_ADC_VOL_DB_INC -1
106#define DA732X_EQ_OVERALL_VOL_DB_MIN -1800
107#define DA732X_EQ_OVERALL_VOL_DB_INC 600
108
109enum da732x_sysctl {
110 DA732X_SR_8KHZ = 0x1,
111 DA732X_SR_11_025KHZ = 0x2,
112 DA732X_SR_12KHZ = 0x3,
113 DA732X_SR_16KHZ = 0x5,
114 DA732X_SR_22_05KHZ = 0x6,
115 DA732X_SR_24KHZ = 0x7,
116 DA732X_SR_32KHZ = 0x9,
117 DA732X_SR_44_1KHZ = 0xA,
118 DA732X_SR_48KHZ = 0xB,
119 DA732X_SR_88_1KHZ = 0xE,
120 DA732X_SR_96KHZ = 0xF,
121};
122
123#endif /* __DA732X_H_ */
124

source code of linux/sound/soc/codecs/da732x.h