wm8940.h 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /*
  2. * wm8940.h -- WM8940 Soc Audio driver
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #ifndef _WM8940_H
  9. #define _WM8940_H
  10. struct wm8940_setup_data {
  11. /* Vref to analogue output resistance */
  12. #define WM8940_VROI_1K 0
  13. #define WM8940_VROI_30K 1
  14. unsigned int vroi:1;
  15. };
  16. /* WM8940 register space */
  17. #define WM8940_SOFTRESET 0x00
  18. #define WM8940_POWER1 0x01
  19. #define WM8940_POWER2 0x02
  20. #define WM8940_POWER3 0x03
  21. #define WM8940_IFACE 0x04
  22. #define WM8940_COMPANDINGCTL 0x05
  23. #define WM8940_CLOCK 0x06
  24. #define WM8940_ADDCNTRL 0x07
  25. #define WM8940_GPIO 0x08
  26. #define WM8940_CTLINT 0x09
  27. #define WM8940_DAC 0x0A
  28. #define WM8940_DACVOL 0x0B
  29. #define WM8940_ADC 0x0E
  30. #define WM8940_ADCVOL 0x0F
  31. #define WM8940_NOTCH1 0x10
  32. #define WM8940_NOTCH2 0x11
  33. #define WM8940_NOTCH3 0x12
  34. #define WM8940_NOTCH4 0x13
  35. #define WM8940_NOTCH5 0x14
  36. #define WM8940_NOTCH6 0x15
  37. #define WM8940_NOTCH7 0x16
  38. #define WM8940_NOTCH8 0x17
  39. #define WM8940_DACLIM1 0x18
  40. #define WM8940_DACLIM2 0x19
  41. #define WM8940_ALC1 0x20
  42. #define WM8940_ALC2 0x21
  43. #define WM8940_ALC3 0x22
  44. #define WM8940_NOISEGATE 0x23
  45. #define WM8940_PLLN 0x24
  46. #define WM8940_PLLK1 0x25
  47. #define WM8940_PLLK2 0x26
  48. #define WM8940_PLLK3 0x27
  49. #define WM8940_ALC4 0x2A
  50. #define WM8940_INPUTCTL 0x2C
  51. #define WM8940_PGAGAIN 0x2D
  52. #define WM8940_ADCBOOST 0x2F
  53. #define WM8940_OUTPUTCTL 0x31
  54. #define WM8940_SPKMIX 0x32
  55. #define WM8940_SPKVOL 0x36
  56. #define WM8940_MONOMIX 0x38
  57. #define WM8940_CACHEREGNUM 0x57
  58. /* Clock divider Id's */
  59. #define WM8940_BCLKDIV 0
  60. #define WM8940_MCLKDIV 1
  61. #define WM8940_OPCLKDIV 2
  62. /* MCLK clock dividers */
  63. #define WM8940_MCLKDIV_1 0
  64. #define WM8940_MCLKDIV_1_5 1
  65. #define WM8940_MCLKDIV_2 2
  66. #define WM8940_MCLKDIV_3 3
  67. #define WM8940_MCLKDIV_4 4
  68. #define WM8940_MCLKDIV_6 5
  69. #define WM8940_MCLKDIV_8 6
  70. #define WM8940_MCLKDIV_12 7
  71. /* BCLK clock dividers */
  72. #define WM8940_BCLKDIV_1 0
  73. #define WM8940_BCLKDIV_2 1
  74. #define WM8940_BCLKDIV_4 2
  75. #define WM8940_BCLKDIV_8 3
  76. #define WM8940_BCLKDIV_16 4
  77. #define WM8940_BCLKDIV_32 5
  78. /* PLL Out Dividers */
  79. #define WM8940_OPCLKDIV_1 0
  80. #define WM8940_OPCLKDIV_2 1
  81. #define WM8940_OPCLKDIV_3 2
  82. #define WM8940_OPCLKDIV_4 3
  83. #endif /* _WM8940_H */