asoc-s3c.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * Copyright (c) 2009 Samsung Electronics Co. Ltd
  3. * Author: Jaswinder Singh <jassi.brar@samsung.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. */
  9. /* The machine init code calls s3c*_ac97_setup_gpio with
  10. * one of these defines in order to select appropriate bank
  11. * of GPIO for AC97 pins
  12. */
  13. #define S3C64XX_AC97_GPD 0
  14. #define S3C64XX_AC97_GPE 1
  15. extern void s3c64xx_ac97_setup_gpio(int);
  16. struct samsung_i2s {
  17. /* If the Primary DAI has 5.1 Channels */
  18. #define QUIRK_PRI_6CHAN (1 << 0)
  19. /* If the I2S block has a Stereo Overlay Channel */
  20. #define QUIRK_SEC_DAI (1 << 1)
  21. /*
  22. * If the I2S block has no internal prescalar or MUX (I2SMOD[10] bit)
  23. * The Machine driver must provide suitably set clock to the I2S block.
  24. */
  25. #define QUIRK_NO_MUXPSR (1 << 2)
  26. #define QUIRK_NEED_RSTCLR (1 << 3)
  27. #define QUIRK_SUPPORTS_TDM (1 << 4)
  28. #define QUIRK_SUPPORTS_IDMA (1 << 5)
  29. /* Quirks of the I2S controller */
  30. u32 quirks;
  31. dma_addr_t idma_addr;
  32. };
  33. /**
  34. * struct s3c_audio_pdata - common platform data for audio device drivers
  35. * @cfg_gpio: Callback function to setup mux'ed pins in I2S/PCM/AC97 mode
  36. */
  37. struct s3c_audio_pdata {
  38. int (*cfg_gpio)(struct platform_device *);
  39. void *dma_playback;
  40. void *dma_capture;
  41. void *dma_play_sec;
  42. void *dma_capture_mic;
  43. union {
  44. struct samsung_i2s i2s;
  45. } type;
  46. };