diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-03-31 12:16:31 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-03-31 12:16:31 +0200 |
commit | 9ddd84f872898373c51469f9c931d5aa89fdc807 (patch) | |
tree | d81f9e396801f04d55924c0d3bbd903fe60ebcda /sound/soc/codecs/ad193x-spi.c | |
parent | 749d32237bf39e6576dd95bfdf24e4378e51716c (diff) | |
parent | a4b7f21d7b42b33609df3f86992a8deff80abfaf (diff) | |
download | op-kernel-dev-9ddd84f872898373c51469f9c931d5aa89fdc807.zip op-kernel-dev-9ddd84f872898373c51469f9c931d5aa89fdc807.tar.gz |
Merge branch 'for-next' into for-linus
Diffstat (limited to 'sound/soc/codecs/ad193x-spi.c')
-rw-r--r-- | sound/soc/codecs/ad193x-spi.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/sound/soc/codecs/ad193x-spi.c b/sound/soc/codecs/ad193x-spi.c new file mode 100644 index 0000000..390cef9 --- /dev/null +++ b/sound/soc/codecs/ad193x-spi.c @@ -0,0 +1,48 @@ +/* + * AD1938/AD1939 audio driver + * + * Copyright 2014 Analog Devices Inc. + * + * Licensed under the GPL-2. + */ + +#include <linux/module.h> +#include <linux/spi/spi.h> +#include <linux/regmap.h> + +#include <sound/soc.h> + +#include "ad193x.h" + +static int ad193x_spi_probe(struct spi_device *spi) +{ + struct regmap_config config; + + config = ad193x_regmap_config; + config.val_bits = 8; + config.reg_bits = 16; + config.read_flag_mask = 0x09; + config.write_flag_mask = 0x08; + + return ad193x_probe(&spi->dev, devm_regmap_init_spi(spi, &config)); +} + +static int ad193x_spi_remove(struct spi_device *spi) +{ + snd_soc_unregister_codec(&spi->dev); + return 0; +} + +static struct spi_driver ad193x_spi_driver = { + .driver = { + .name = "ad193x", + .owner = THIS_MODULE, + }, + .probe = ad193x_spi_probe, + .remove = ad193x_spi_remove, +}; +module_spi_driver(ad193x_spi_driver); + +MODULE_DESCRIPTION("ASoC AD1938/AD1939 audio CODEC driver"); +MODULE_AUTHOR("Barry Song <21cnbao@gmail.com>"); +MODULE_LICENSE("GPL"); |