linux/sound/soc/codecs/da732x.h
<<
>>
Prefs
   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_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
 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_ */
 128