wm8804.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * wm8804.h -- WM8804 S/PDIF transceiver driver
  3. *
  4. * Copyright 2010 Wolfson Microelectronics plc
  5. *
  6. * Author: Dimitris Papastamos <dp@opensource.wolfsonmicro.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 _WM8804_H
  13. #define _WM8804_H
  14. #include <linux/regmap.h>
  15. /*
  16. * Register values.
  17. */
  18. #define WM8804_RST_DEVID1 0x00
  19. #define WM8804_DEVID2 0x01
  20. #define WM8804_DEVREV 0x02
  21. #define WM8804_PLL1 0x03
  22. #define WM8804_PLL2 0x04
  23. #define WM8804_PLL3 0x05
  24. #define WM8804_PLL4 0x06
  25. #define WM8804_PLL5 0x07
  26. #define WM8804_PLL6 0x08
  27. #define WM8804_SPDMODE 0x09
  28. #define WM8804_INTMASK 0x0A
  29. #define WM8804_INTSTAT 0x0B
  30. #define WM8804_SPDSTAT 0x0C
  31. #define WM8804_RXCHAN1 0x0D
  32. #define WM8804_RXCHAN2 0x0E
  33. #define WM8804_RXCHAN3 0x0F
  34. #define WM8804_RXCHAN4 0x10
  35. #define WM8804_RXCHAN5 0x11
  36. #define WM8804_SPDTX1 0x12
  37. #define WM8804_SPDTX2 0x13
  38. #define WM8804_SPDTX3 0x14
  39. #define WM8804_SPDTX4 0x15
  40. #define WM8804_SPDTX5 0x16
  41. #define WM8804_GPO0 0x17
  42. #define WM8804_GPO1 0x18
  43. #define WM8804_GPO2 0x1A
  44. #define WM8804_AIFTX 0x1B
  45. #define WM8804_AIFRX 0x1C
  46. #define WM8804_SPDRX1 0x1D
  47. #define WM8804_PWRDN 0x1E
  48. #define WM8804_REGISTER_COUNT 30
  49. #define WM8804_MAX_REGISTER 0x1E
  50. #define WM8804_TX_CLKSRC_MCLK 1
  51. #define WM8804_TX_CLKSRC_PLL 2
  52. #define WM8804_CLKOUT_SRC_CLK1 3
  53. #define WM8804_CLKOUT_SRC_OSCCLK 4
  54. #define WM8804_CLKOUT_DIV 1
  55. #define WM8804_MCLK_DIV 2
  56. #define WM8804_MCLKDIV_256FS 0
  57. #define WM8804_MCLKDIV_128FS 1
  58. extern const struct regmap_config wm8804_regmap_config;
  59. extern const struct dev_pm_ops wm8804_pm;
  60. int wm8804_probe(struct device *dev, struct regmap *regmap);
  61. void wm8804_remove(struct device *dev);
  62. #endif /* _WM8804_H */