tlv320aic23-spi.c 1008 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * ALSA SoC TLV320AIC23 codec driver SPI interface
  4. *
  5. * Author: Arun KS, <arunks@mistralsolutions.com>
  6. * Copyright: (C) 2008 Mistral Solutions Pvt Ltd.,
  7. *
  8. * Based on sound/soc/codecs/wm8731.c by Richard Purdie
  9. */
  10. #include <linux/module.h>
  11. #include <linux/regmap.h>
  12. #include <linux/spi/spi.h>
  13. #include <sound/soc.h>
  14. #include "tlv320aic23.h"
  15. static int aic23_spi_probe(struct spi_device *spi)
  16. {
  17. int ret;
  18. struct regmap *regmap;
  19. dev_dbg(&spi->dev, "probing tlv320aic23 spi device\n");
  20. spi->mode = SPI_MODE_0;
  21. ret = spi_setup(spi);
  22. if (ret < 0)
  23. return ret;
  24. regmap = devm_regmap_init_spi(spi, &tlv320aic23_regmap);
  25. return tlv320aic23_probe(&spi->dev, regmap);
  26. }
  27. static struct spi_driver aic23_spi = {
  28. .driver = {
  29. .name = "tlv320aic23",
  30. },
  31. .probe = aic23_spi_probe,
  32. };
  33. module_spi_driver(aic23_spi);
  34. MODULE_DESCRIPTION("ASoC TLV320AIC23 codec driver SPI");
  35. MODULE_AUTHOR("Arun KS <arunks@mistralsolutions.com>");
  36. MODULE_LICENSE("GPL");