blob: 842f373045c607299972923861cfff1bf7287af7 [file] [log] [blame]
Lars-Peter Clausenc924dc62014-02-17 13:16:53 +01001/*
2 * SSM2602 SPI audio driver
3 *
4 * Copyright 2014 Analog Devices Inc.
5 *
6 * Licensed under the GPL-2.
7 */
8
9#include <linux/module.h>
10#include <linux/spi/spi.h>
11#include <linux/regmap.h>
12
13#include <sound/soc.h>
14
15#include "ssm2602.h"
16
17static int ssm2602_spi_probe(struct spi_device *spi)
18{
19 return ssm2602_probe(&spi->dev, SSM2602,
20 devm_regmap_init_spi(spi, &ssm2602_regmap_config));
21}
22
23static int ssm2602_spi_remove(struct spi_device *spi)
24{
25 snd_soc_unregister_codec(&spi->dev);
26 return 0;
27}
28
Stefan Kristiansson555b9ee2014-09-29 22:41:10 +030029static const struct of_device_id ssm2602_of_match[] = {
30 { .compatible = "adi,ssm2602", },
31 { }
32};
33MODULE_DEVICE_TABLE(of, ssm2602_of_match);
34
Lars-Peter Clausenc924dc62014-02-17 13:16:53 +010035static struct spi_driver ssm2602_spi_driver = {
36 .driver = {
37 .name = "ssm2602",
Stefan Kristiansson555b9ee2014-09-29 22:41:10 +030038 .of_match_table = ssm2602_of_match,
Lars-Peter Clausenc924dc62014-02-17 13:16:53 +010039 },
40 .probe = ssm2602_spi_probe,
41 .remove = ssm2602_spi_remove,
42};
43module_spi_driver(ssm2602_spi_driver);
44
45MODULE_DESCRIPTION("ASoC SSM2602 SPI driver");
46MODULE_AUTHOR("Cliff Cai");
47MODULE_LICENSE("GPL");