wm8996.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * linux/sound/wm8996.h -- Platform data for WM8996
  3. *
  4. * Copyright 2011 Wolfson Microelectronics. PLC.
  5. *
  6. * This program is free software; you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License version 2 as
  8. * published by the Free Software Foundation.
  9. */
  10. #ifndef __LINUX_SND_WM8996_H
  11. #define __LINUX_SND_WM8996_H
  12. enum wm8996_inmode {
  13. WM8996_DIFFERRENTIAL_1 = 0, /* IN1xP - IN1xN */
  14. WM8996_INVERTING = 1, /* IN1xN */
  15. WM8996_NON_INVERTING = 2, /* IN1xP */
  16. WM8996_DIFFERENTIAL_2 = 3, /* IN2xP - IN2xP */
  17. };
  18. /**
  19. * ReTune Mobile configurations are specified with a label, sample
  20. * rate and set of values to write (the enable bits will be ignored).
  21. *
  22. * Configurations are expected to be generated using the ReTune Mobile
  23. * control panel in WISCE - see http://www.wolfsonmicro.com/wisce/
  24. */
  25. struct wm8996_retune_mobile_config {
  26. const char *name;
  27. int rate;
  28. u16 regs[20];
  29. };
  30. #define WM8996_SET_DEFAULT 0x10000
  31. struct wm8996_pdata {
  32. int irq_flags; /** Set IRQ trigger flags; default active low */
  33. int ldo_ena; /** GPIO for LDO1; -1 for none */
  34. int micdet_def; /** Default MICDET_SRC/HP1FB_SRC/MICD_BIAS */
  35. enum wm8996_inmode inl_mode;
  36. enum wm8996_inmode inr_mode;
  37. u32 spkmute_seq; /** Value for register 0x802 */
  38. int gpio_base;
  39. u32 gpio_default[5];
  40. int num_retune_mobile_cfgs;
  41. struct wm8996_retune_mobile_config *retune_mobile_cfgs;
  42. };
  43. #endif