summaryrefslogtreecommitdiffstats
path: root/sound/soc/codecs/dio2125.c
diff options
context:
space:
mode:
authorJerome Brunet <jbrunet@baylibre.com>2018-06-26 14:11:27 +0200
committerMark Brown <broonie@kernel.org>2018-06-27 12:26:38 +0100
commit8d881bb6216d28896112bdc0b42f1f21eb6cd4ee (patch)
tree462805555b9ff0a5bb2a62bdab424803003de99a /sound/soc/codecs/dio2125.c
parent0ed03e6dc288c50b2e7d71523b99df1afd81cea1 (diff)
downloadlinux-8d881bb6216d28896112bdc0b42f1f21eb6cd4ee.tar.bz2
ASoC: simple-amplifier: rename dio2125 to simple-amplifer
The dio2125 is simple enough that we can make it a generic component. Just rename and sed the dio2125 amplifier driver to simple_amplifier. Suggested-by: Nicolò Veronese <nicveronese@gmail.com> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc/codecs/dio2125.c')
-rw-r--r--sound/soc/codecs/dio2125.c120
1 files changed, 0 insertions, 120 deletions
diff --git a/sound/soc/codecs/dio2125.c b/sound/soc/codecs/dio2125.c
deleted file mode 100644
index 09451cd44f9b..000000000000
--- a/sound/soc/codecs/dio2125.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (c) 2017 BayLibre, SAS.
- * Author: Jerome Brunet <jbrunet@baylibre.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- * The full GNU General Public License is included in this distribution
- * in the file called COPYING.
- */
-
-#include <linux/gpio/consumer.h>
-#include <linux/module.h>
-#include <sound/soc.h>
-
-#define DRV_NAME "dio2125"
-
-struct dio2125 {
- struct gpio_desc *gpiod_enable;
-};
-
-static int drv_event(struct snd_soc_dapm_widget *w,
- struct snd_kcontrol *control, int event)
-{
- struct snd_soc_component *c = snd_soc_dapm_to_component(w->dapm);
- struct dio2125 *priv = snd_soc_component_get_drvdata(c);
- int val;
-
- switch (event) {
- case SND_SOC_DAPM_POST_PMU:
- val = 1;
- break;
- case SND_SOC_DAPM_PRE_PMD:
- val = 0;
- break;
- default:
- WARN(1, "Unexpected event");
- return -EINVAL;
- }
-
- gpiod_set_value_cansleep(priv->gpiod_enable, val);
-
- return 0;
-}
-
-static const struct snd_soc_dapm_widget dio2125_dapm_widgets[] = {
- SND_SOC_DAPM_INPUT("INL"),
- SND_SOC_DAPM_INPUT("INR"),
- SND_SOC_DAPM_OUT_DRV_E("DRV", SND_SOC_NOPM, 0, 0, NULL, 0, drv_event,
- (SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD)),
- SND_SOC_DAPM_OUTPUT("OUTL"),
- SND_SOC_DAPM_OUTPUT("OUTR"),
-};
-
-static const struct snd_soc_dapm_route dio2125_dapm_routes[] = {
- { "DRV", NULL, "INL" },
- { "DRV", NULL, "INR" },
- { "OUTL", NULL, "DRV" },
- { "OUTR", NULL, "DRV" },
-};
-
-static const struct snd_soc_component_driver dio2125_component_driver = {
- .dapm_widgets = dio2125_dapm_widgets,
- .num_dapm_widgets = ARRAY_SIZE(dio2125_dapm_widgets),
- .dapm_routes = dio2125_dapm_routes,
- .num_dapm_routes = ARRAY_SIZE(dio2125_dapm_routes),
-};
-
-static int dio2125_probe(struct platform_device *pdev)
-{
- struct device *dev = &pdev->dev;
- struct dio2125 *priv;
- int err;
-
- priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
- if (priv == NULL)
- return -ENOMEM;
- platform_set_drvdata(pdev, priv);
-
- priv->gpiod_enable = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
- if (IS_ERR(priv->gpiod_enable)) {
- err = PTR_ERR(priv->gpiod_enable);
- if (err != -EPROBE_DEFER)
- dev_err(dev, "Failed to get 'enable' gpio: %d", err);
- return err;
- }
-
- return devm_snd_soc_register_component(dev, &dio2125_component_driver,
- NULL, 0);
-}
-
-#ifdef CONFIG_OF
-static const struct of_device_id dio2125_ids[] = {
- { .compatible = "dioo,dio2125", },
- { }
-};
-MODULE_DEVICE_TABLE(of, dio2125_ids);
-#endif
-
-static struct platform_driver dio2125_driver = {
- .driver = {
- .name = DRV_NAME,
- .of_match_table = of_match_ptr(dio2125_ids),
- },
- .probe = dio2125_probe,
-};
-
-module_platform_driver(dio2125_driver);
-
-MODULE_DESCRIPTION("ASoC DIO2125 output driver");
-MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>");
-MODULE_LICENSE("GPL");