Commit | Line | Data |
---|---|---|
c973b8a7 AL |
1 | /* |
2 | * CS4271 SPI audio driver | |
3 | * | |
4 | * Copyright (c) 2010 Alexander Sverdlin <subaparts@yandex.ru> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU General Public License | |
8 | * as published by the Free Software Foundation; either version 2 | |
9 | * of the License, or (at your option) any later version. | |
10 | * | |
11 | * This program is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | * GNU General Public License for more details. | |
15 | */ | |
16 | ||
17 | #include <linux/module.h> | |
18 | #include <linux/spi/spi.h> | |
19 | #include <linux/regmap.h> | |
20 | #include <sound/soc.h> | |
21 | #include "cs4271.h" | |
22 | ||
23 | static int cs4271_spi_probe(struct spi_device *spi) | |
24 | { | |
25 | struct regmap_config config; | |
26 | ||
27 | config = cs4271_regmap_config; | |
28 | config.reg_bits = 16; | |
29 | config.val_bits = 8; | |
30 | config.read_flag_mask = 0x21; | |
31 | config.write_flag_mask = 0x20; | |
32 | ||
33 | return cs4271_probe(&spi->dev, devm_regmap_init_spi(spi, &config)); | |
34 | } | |
35 | ||
36 | static int cs4271_spi_remove(struct spi_device *spi) | |
37 | { | |
38 | snd_soc_unregister_codec(&spi->dev); | |
39 | return 0; | |
40 | } | |
41 | ||
42 | static struct spi_driver cs4271_spi_driver = { | |
43 | .driver = { | |
44 | .name = "cs4271", | |
45 | .owner = THIS_MODULE, | |
46 | .of_match_table = of_match_ptr(cs4271_dt_ids), | |
47 | }, | |
48 | .probe = cs4271_spi_probe, | |
49 | .remove = cs4271_spi_remove, | |
50 | }; | |
51 | module_spi_driver(cs4271_spi_driver); | |
52 | ||
53 | MODULE_DESCRIPTION("ASoC CS4271 SPI Driver"); | |
54 | MODULE_AUTHOR("Alexander Sverdlin <subaparts@yandex.ru>"); | |
55 | MODULE_LICENSE("GPL"); |