summaryrefslogtreecommitdiff
path: root/drivers/sound/codec-uclass.c
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2018-12-10 20:37:33 +0300
committerSimon Glass <sjg@chromium.org>2018-12-14 02:32:49 +0300
commitce6d99a056ebc9ad329521ca3660f6cb298a7666 (patch)
treee297e74248dba6d54656e7899a4bd0e134c1dd9d /drivers/sound/codec-uclass.c
parent45863db5a97360b6843a0488621342819e9a6e62 (diff)
downloadu-boot-ce6d99a056ebc9ad329521ca3660f6cb298a7666.tar.xz
dm: sound: Create a uclass for audio codecs
An audio codec provides a way to convert digital data to sound and vice versa. Add a simple uclass which just supports setting the parameters for the codec. Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/sound/codec-uclass.c')
-rw-r--r--drivers/sound/codec-uclass.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/drivers/sound/codec-uclass.c b/drivers/sound/codec-uclass.c
new file mode 100644
index 0000000000..1ec77acfc1
--- /dev/null
+++ b/drivers/sound/codec-uclass.c
@@ -0,0 +1,26 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright 2018 Google LLC
+ * Written by Simon Glass <sjg@chromium.org>
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <audio_codec.h>
+
+int audio_codec_set_params(struct udevice *dev, int interface, int rate,
+ int mclk_freq, int bits_per_sample, uint channels)
+{
+ struct audio_codec_ops *ops = audio_codec_get_ops(dev);
+
+ if (!ops->set_params)
+ return -ENOSYS;
+
+ return ops->set_params(dev, interface, rate, mclk_freq, bits_per_sample,
+ channels);
+}
+
+UCLASS_DRIVER(audio_codec) = {
+ .id = UCLASS_AUDIO_CODEC,
+ .name = "audio-codec",
+};