From 8829efb30ecbecde33a266ddaed25a74cebbbaf2 Mon Sep 17 00:00:00 2001 From: Andrey Gusakov Date: Tue, 13 Dec 2016 18:07:13 +0300 Subject: [PATCH 103/104] ASoC: add dummy Si468x driver Signed-off-by: Andrey Gusakov --- sound/soc/codecs/Kconfig | 3 +++ sound/soc/codecs/Makefile | 2 ++ sound/soc/codecs/si468x.c | 66 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 sound/soc/codecs/si468x.c diff --git a/sound/soc/codecs/Kconfig b/sound/soc/codecs/Kconfig index 4d82a58..264fe79 100644 --- a/sound/soc/codecs/Kconfig +++ b/sound/soc/codecs/Kconfig @@ -588,6 +588,9 @@ config SND_SOC_PCM3168A_SPI select SND_SOC_PCM3168A select REGMAP_SPI +config SND_SOC_SI468X + tristate "Dummy sound driver for Si468x radio" + config SND_SOC_PCM5102A tristate diff --git a/sound/soc/codecs/Makefile b/sound/soc/codecs/Makefile index 0f548fd3..71a6c2f 100644 --- a/sound/soc/codecs/Makefile +++ b/sound/soc/codecs/Makefile @@ -116,6 +116,7 @@ snd-soc-sigmadsp-objs := sigmadsp.o snd-soc-sigmadsp-i2c-objs := sigmadsp-i2c.o snd-soc-sigmadsp-regmap-objs := sigmadsp-regmap.o snd-soc-si476x-objs := si476x.o +snd-soc-si468x-objs := si468x.o snd-soc-sirf-audio-codec-objs := sirf-audio-codec.o snd-soc-sn95031-objs := sn95031.o snd-soc-spdif-tx-objs := spdif_transmitter.o @@ -328,6 +329,7 @@ obj-$(CONFIG_SND_SOC_SIGMADSP) += snd-soc-sigmadsp.o obj-$(CONFIG_SND_SOC_SIGMADSP_I2C) += snd-soc-sigmadsp-i2c.o obj-$(CONFIG_SND_SOC_SIGMADSP_REGMAP) += snd-soc-sigmadsp-regmap.o obj-$(CONFIG_SND_SOC_SI476X) += snd-soc-si476x.o +obj-$(CONFIG_SND_SOC_SI468X) += snd-soc-si468x.o obj-$(CONFIG_SND_SOC_SN95031) +=snd-soc-sn95031.o obj-$(CONFIG_SND_SOC_SPDIF) += snd-soc-spdif-rx.o snd-soc-spdif-tx.o obj-$(CONFIG_SND_SOC_SSM2518) += snd-soc-ssm2518.o diff --git a/sound/soc/codecs/si468x.c b/sound/soc/codecs/si468x.c new file mode 100644 index 0000000..18b099f --- /dev/null +++ b/sound/soc/codecs/si468x.c @@ -0,0 +1,66 @@ +/* + * Dummy sound driver for Si468x DAB/FM/AM chips + * Copyright 2016 Andrey Gusakov + * + * Based on: Driver for the DFBM-CS320 bluetooth module + * Copyright 2011 Lars-Peter Clausen + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + */ + +#include +#include +#include + +#include + +static struct snd_soc_dai_driver si468x_dai = { + .name = "si468x-pcm", + .capture = { + .channels_min = 2, + .channels_max = 2, + .rates = SNDRV_PCM_RATE_48000, + .formats = SNDRV_PCM_FMTBIT_S16_LE, + }, +}; + +static struct snd_soc_codec_driver soc_codec_dev_si468x; + +static int si468x_probe(struct platform_device *pdev) +{ + return snd_soc_register_codec(&pdev->dev, &soc_codec_dev_si468x, + &si468x_dai, 1); +} + +static int si468x_remove(struct platform_device *pdev) +{ + snd_soc_unregister_codec(&pdev->dev); + + return 0; +} + +static const struct of_device_id si468x_of_match[] = { + { .compatible = "si,si468x-pcm", }, + { } +}; +MODULE_DEVICE_TABLE(of, si468x_of_match); + +static struct platform_driver si468x_driver = { + .driver = { + .name = "si468x", + .of_match_table = si468x_of_match, + .owner = THIS_MODULE, + }, + .probe = si468x_probe, + .remove = si468x_remove, +}; + +module_platform_driver(si468x_driver); + +MODULE_AUTHOR("Andrey Gusakov "); +MODULE_DESCRIPTION("ASoC Si468x radio chip driver"); +MODULE_LICENSE("GPL"); -- 1.7.10.4