wm8940.h 2.1 KB

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