da732x.h 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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. #ifndef __DA732X_H_
  13. #define __DA732X_H_
  14. #include <sound/soc.h>
  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. #define DA732X_DACS_DIS 0x0
  26. #define DA732X_HP_DIS 0x0
  27. #define DA732X_CLEAR_REG 0x0
  28. /* Calibration */
  29. #define DA732X_DAC_OFFSET_STEP 0x20
  30. #define DA732X_OUTPUT_OFFSET_STEP 0x80
  31. #define DA732X_HP_OUT_TRIM_VAL 0x0
  32. #define DA732X_WAIT_FOR_STABILIZATION 1
  33. #define DA732X_HPL_DAC 0
  34. #define DA732X_HPR_DAC 1
  35. #define DA732X_HP_DACS 2
  36. #define DA732X_HPL_AMP 0
  37. #define DA732X_HPR_AMP 1
  38. #define DA732X_HP_AMPS 2
  39. /* Clock settings */
  40. #define DA732X_STARTUP_DELAY 100
  41. #define DA732X_PLL_OUT_196608 196608000
  42. #define DA732X_PLL_OUT_180634 180633600
  43. #define DA732X_PLL_OUT_SRM 188620800
  44. #define DA732X_MCLK_10MHZ 10000000
  45. #define DA732X_MCLK_20MHZ 20000000
  46. #define DA732X_MCLK_40MHZ 40000000
  47. #define DA732X_MCLK_54MHZ 54000000
  48. #define DA732X_MCLK_RET_0_10MHZ 0
  49. #define DA732X_MCLK_VAL_0_10MHZ 1
  50. #define DA732X_MCLK_RET_10_20MHZ 1
  51. #define DA732X_MCLK_VAL_10_20MHZ 2
  52. #define DA732X_MCLK_RET_20_40MHZ 2
  53. #define DA732X_MCLK_VAL_20_40MHZ 4
  54. #define DA732X_MCLK_RET_40_54MHZ 3
  55. #define DA732X_MCLK_VAL_40_54MHZ 8
  56. #define DA732X_DAI_ID1 0
  57. #define DA732X_DAI_ID2 1
  58. #define DA732X_SRCCLK_PLL 0
  59. #define DA732X_SRCCLK_MCLK 1
  60. #define DA732X_LIN_LP_VOL 0x4F
  61. #define DA732X_LP_VOL 0x40
  62. /* Kcontrols */
  63. #define DA732X_DAC_EN_MAX 2
  64. #define DA732X_ADCL_MUX_MAX 2
  65. #define DA732X_ADCR_MUX_MAX 3
  66. #define DA732X_HPF_MODE_MAX 3
  67. #define DA732X_HPF_MODE_SHIFT 4
  68. #define DA732X_HPF_MUSIC_SHIFT 0
  69. #define DA732X_HPF_MUSIC_MAX 4
  70. #define DA732X_HPF_VOICE_SHIFT 4
  71. #define DA732X_HPF_VOICE_MAX 8
  72. #define DA732X_EQ_EN_MAX 1
  73. #define DA732X_HPF_VOICE 1
  74. #define DA732X_HPF_MUSIC 2
  75. #define DA732X_HPF_DISABLED 0
  76. #define DA732X_NO_INVERT 0
  77. #define DA732X_INVERT 1
  78. #define DA732X_SWITCH_MAX 1
  79. #define DA732X_ENABLE_CP 1
  80. #define DA732X_DISABLE_CP 0
  81. #define DA732X_DISABLE_ALL_CLKS 0
  82. #define DA732X_RESET_ADCS 0
  83. /* dB values */
  84. #define DA732X_MIC_VOL_DB_MIN 0
  85. #define DA732X_MIC_VOL_DB_INC 50
  86. #define DA732X_MIC_PRE_VOL_DB_MIN 0
  87. #define DA732X_MIC_PRE_VOL_DB_INC 600
  88. #define DA732X_AUX_VOL_DB_MIN -6000
  89. #define DA732X_AUX_VOL_DB_INC 150
  90. #define DA732X_HP_VOL_DB_MIN -2250
  91. #define DA732X_HP_VOL_DB_INC 150
  92. #define DA732X_LIN2_VOL_DB_MIN -1650
  93. #define DA732X_LIN2_VOL_DB_INC 150
  94. #define DA732X_LIN3_VOL_DB_MIN -1650
  95. #define DA732X_LIN3_VOL_DB_INC 150
  96. #define DA732X_LIN4_VOL_DB_MIN -2250
  97. #define DA732X_LIN4_VOL_DB_INC 150
  98. #define DA732X_EQ_BAND_VOL_DB_MIN -1050
  99. #define DA732X_EQ_BAND_VOL_DB_INC 150
  100. #define DA732X_DAC_VOL_DB_MIN -7725
  101. #define DA732X_DAC_VOL_DB_INC 75
  102. #define DA732X_ADC_VOL_DB_MIN 0
  103. #define DA732X_ADC_VOL_DB_INC -1
  104. #define DA732X_EQ_OVERALL_VOL_DB_MIN -1800
  105. #define DA732X_EQ_OVERALL_VOL_DB_INC 600
  106. enum da732x_sysctl {
  107. DA732X_SR_8KHZ = 0x1,
  108. DA732X_SR_11_025KHZ = 0x2,
  109. DA732X_SR_12KHZ = 0x3,
  110. DA732X_SR_16KHZ = 0x5,
  111. DA732X_SR_22_05KHZ = 0x6,
  112. DA732X_SR_24KHZ = 0x7,
  113. DA732X_SR_32KHZ = 0x9,
  114. DA732X_SR_44_1KHZ = 0xA,
  115. DA732X_SR_48KHZ = 0xB,
  116. DA732X_SR_88_1KHZ = 0xE,
  117. DA732X_SR_96KHZ = 0xF,
  118. };
  119. #endif /* __DA732X_H_ */