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