db1000.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * DB1000/DB1500/DB1100 ASoC audio fabric support code.
  4. *
  5. * (c) 2011 Manuel Lauss <[email protected]>
  6. *
  7. */
  8. #include <linux/module.h>
  9. #include <linux/moduleparam.h>
  10. #include <linux/timer.h>
  11. #include <linux/interrupt.h>
  12. #include <linux/platform_device.h>
  13. #include <sound/core.h>
  14. #include <sound/pcm.h>
  15. #include <sound/soc.h>
  16. #include <asm/mach-au1x00/au1000.h>
  17. #include <asm/mach-db1x00/bcsr.h>
  18. #include "psc.h"
  19. SND_SOC_DAILINK_DEFS(hifi,
  20. DAILINK_COMP_ARRAY(COMP_CPU("alchemy-ac97c")),
  21. DAILINK_COMP_ARRAY(COMP_CODEC("ac97-codec", "ac97-hifi")),
  22. DAILINK_COMP_ARRAY(COMP_PLATFORM("alchemy-pcm-dma.0")));
  23. static struct snd_soc_dai_link db1000_ac97_dai = {
  24. .name = "AC97",
  25. .stream_name = "AC97 HiFi",
  26. SND_SOC_DAILINK_REG(hifi),
  27. };
  28. static struct snd_soc_card db1000_ac97 = {
  29. .name = "DB1000_AC97",
  30. .owner = THIS_MODULE,
  31. .dai_link = &db1000_ac97_dai,
  32. .num_links = 1,
  33. };
  34. static int db1000_audio_probe(struct platform_device *pdev)
  35. {
  36. struct snd_soc_card *card = &db1000_ac97;
  37. card->dev = &pdev->dev;
  38. return devm_snd_soc_register_card(&pdev->dev, card);
  39. }
  40. static struct platform_driver db1000_audio_driver = {
  41. .driver = {
  42. .name = "db1000-audio",
  43. .pm = &snd_soc_pm_ops,
  44. },
  45. .probe = db1000_audio_probe,
  46. };
  47. module_platform_driver(db1000_audio_driver);
  48. MODULE_LICENSE("GPL");
  49. MODULE_DESCRIPTION("DB1000/DB1500/DB1100 ASoC audio");
  50. MODULE_AUTHOR("Manuel Lauss");