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