linux/sound/soc/codecs/tlv320aic23-spi.c
<<
>>
Prefs
   1/*
   2 * ALSA SoC TLV320AIC23 codec driver SPI interface
   3 *
   4 * Author:      Arun KS, <arunks@mistralsolutions.com>
   5 * Copyright:   (C) 2008 Mistral Solutions Pvt Ltd.,
   6 *
   7 * Based on sound/soc/codecs/wm8731.c by Richard Purdie
   8 *
   9 * This program is free software; you can redistribute it and/or modify
  10 * it under the terms of the GNU General Public License version 2 as
  11 * published by the Free Software Foundation.
  12 */
  13
  14#include <linux/module.h>
  15#include <linux/regmap.h>
  16#include <linux/spi/spi.h>
  17#include <sound/soc.h>
  18
  19#include "tlv320aic23.h"
  20
  21static int aic23_spi_probe(struct spi_device *spi)
  22{
  23        int ret;
  24        struct regmap *regmap;
  25
  26        dev_dbg(&spi->dev, "probing tlv320aic23 spi device\n");
  27
  28        spi->mode = SPI_MODE_0;
  29        ret = spi_setup(spi);
  30        if (ret < 0)
  31                return ret;
  32
  33        regmap = devm_regmap_init_spi(spi, &tlv320aic23_regmap);
  34        return tlv320aic23_probe(&spi->dev, regmap);
  35}
  36
  37static int aic23_spi_remove(struct spi_device *spi)
  38{
  39        snd_soc_unregister_codec(&spi->dev);
  40        return 0;
  41}
  42
  43static struct spi_driver aic23_spi = {
  44        .driver = {
  45                .name = "tlv320aic23",
  46        },
  47        .probe = aic23_spi_probe,
  48        .remove = aic23_spi_remove,
  49};
  50
  51module_spi_driver(aic23_spi);
  52
  53MODULE_DESCRIPTION("ASoC TLV320AIC23 codec driver SPI");
  54MODULE_AUTHOR("Arun KS <arunks@mistralsolutions.com>");
  55MODULE_LICENSE("GPL");
  56