xref: /linux/sound/soc/codecs/ssm2602-spi.c (revision 8c749ce93ee69e789e46b3be98de9e0cbfcf8ed8)
1 /*
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 
17 static 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 
23 static int ssm2602_spi_remove(struct spi_device *spi)
24 {
25 	snd_soc_unregister_codec(&spi->dev);
26 	return 0;
27 }
28 
29 static const struct of_device_id ssm2602_of_match[] = {
30 	{ .compatible = "adi,ssm2602", },
31 	{ }
32 };
33 MODULE_DEVICE_TABLE(of, ssm2602_of_match);
34 
35 static struct spi_driver ssm2602_spi_driver = {
36 	.driver = {
37 		.name	= "ssm2602",
38 		.of_match_table = ssm2602_of_match,
39 	},
40 	.probe		= ssm2602_spi_probe,
41 	.remove		= ssm2602_spi_remove,
42 };
43 module_spi_driver(ssm2602_spi_driver);
44 
45 MODULE_DESCRIPTION("ASoC SSM2602 SPI driver");
46 MODULE_AUTHOR("Cliff Cai");
47 MODULE_LICENSE("GPL");
48