diff options
author | Simon Glass <sjg@chromium.org> | 2018-12-10 10:37:47 -0700 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2018-12-13 16:36:41 -0700 |
commit | f2b25c9bf8212139f43ded090c78d604babc4337 (patch) | |
tree | 8da5a8bcb40cf982708cfb9af886f94c9f6364c1 | |
parent | 1e224fef9446e8c0cde57636dd8a36d0ebc85437 (diff) |
dm: sound: Complete migration to driver model
All users of sound are converted to use driver model. Drop the old code
and the CONFIG_DM_SOUND option.
Signed-off-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | arch/sandbox/cpu/sdl.c | 1 | ||||
-rw-r--r-- | arch/sandbox/include/asm/sdl.h | 21 | ||||
-rw-r--r-- | arch/sandbox/include/asm/sound.h | 13 | ||||
-rw-r--r-- | cmd/sound.c | 12 | ||||
-rw-r--r-- | configs/arndale_defconfig | 1 | ||||
-rw-r--r-- | configs/peach-pi_defconfig | 1 | ||||
-rw-r--r-- | configs/peach-pit_defconfig | 1 | ||||
-rw-r--r-- | configs/smdk5250_defconfig | 1 | ||||
-rw-r--r-- | configs/snow_defconfig | 1 | ||||
-rw-r--r-- | configs/spring_defconfig | 1 | ||||
-rw-r--r-- | drivers/sound/Kconfig | 6 | ||||
-rw-r--r-- | drivers/sound/Makefile | 10 | ||||
-rw-r--r-- | drivers/sound/max98095.c | 78 | ||||
-rw-r--r-- | drivers/sound/sandbox.c | 19 | ||||
-rw-r--r-- | drivers/sound/sound-i2s.c | 206 | ||||
-rw-r--r-- | drivers/sound/wm8994.c | 95 | ||||
-rw-r--r-- | include/sound.h | 18 | ||||
-rw-r--r-- | test/dm/Makefile | 6 |
18 files changed, 16 insertions, 475 deletions
diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c index 32fa1fffc9..47b706513e 100644 --- a/arch/sandbox/cpu/sdl.c +++ b/arch/sandbox/cpu/sdl.c @@ -7,7 +7,6 @@ #include <unistd.h> #include <linux/input.h> #include <SDL/SDL.h> -#include <sound.h> #include <asm/state.h> enum { diff --git a/arch/sandbox/include/asm/sdl.h b/arch/sandbox/include/asm/sdl.h index 0143ed9e62..2799a8bee0 100644 --- a/arch/sandbox/include/asm/sdl.h +++ b/arch/sandbox/include/asm/sdl.h @@ -54,12 +54,12 @@ int sandbox_sdl_scan_keys(int key[], int max_keys); int sandbox_sdl_key_pressed(int keycode); /** - * sandbox_sdl_sound_start() - start playing a sound + * sandbox_sdl_sound_play() - Play a sound * - * @frequency: Frequency of sounds in Hertz - * @return 0 if OK, -ENODEV if no sound is available + * @data: Data to play (typically 16-bit) + * @count: Number of bytes in data */ -int sandbox_sdl_sound_start(uint frequency); +int sandbox_sdl_sound_play(const void *data, uint count); /** * sandbox_sdl_sound_stop() - stop playing a sound @@ -69,14 +69,6 @@ int sandbox_sdl_sound_start(uint frequency); int sandbox_sdl_sound_stop(void); /** - * sandbox_sdl_sound_play() - Play a sound - * - * @data: Data to play (typically 16-bit) - * @count: Number of bytes in data - */ -int sandbox_sdl_sound_play(const void *data, uint count); - -/** * sandbox_sdl_sound_init() - set up the sound system * * @return 0 if OK, -ENODEV if no sound is available @@ -110,6 +102,11 @@ static inline int sandbox_sdl_sound_start(uint frequency) return -ENODEV; } +int sandbox_sdl_sound_play(const void *data, uint count) +{ + return -ENODEV; +} + static inline int sandbox_sdl_sound_stop(void) { return -ENODEV; diff --git a/arch/sandbox/include/asm/sound.h b/arch/sandbox/include/asm/sound.h deleted file mode 100644 index a6015b0f60..0000000000 --- a/arch/sandbox/include/asm/sound.h +++ /dev/null @@ -1,13 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0+ */ -/* - * Copyright (c) 2013 Google, Inc - */ - -#ifndef __SANDBOX_SOUND_H -#define __SANDBOX_SOUND_H - -int sound_play(unsigned int msec, unsigned int frequency); - -int sound_init(const void *blob); - -#endif diff --git a/cmd/sound.c b/cmd/sound.c index 77f5152925..638f29df21 100644 --- a/cmd/sound.c +++ b/cmd/sound.c @@ -15,18 +15,12 @@ DECLARE_GLOBAL_DATA_PTR; /* Initilaise sound subsystem */ static int do_init(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { -#ifdef CONFIG_DM_SOUND struct udevice *dev; -#endif int ret; -#ifdef CONFIG_DM_SOUND ret = uclass_first_device_err(UCLASS_SOUND, &dev); if (!ret) ret = sound_setup(dev); -#else - ret = sound_init(gd->fdt_blob); -#endif if (ret) { printf("Initialise Audio driver failed (ret=%d)\n", ret); return CMD_RET_FAILURE; @@ -38,9 +32,7 @@ static int do_init(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) /* play sound from buffer */ static int do_play(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) { -#ifdef CONFIG_DM_SOUND struct udevice *dev; -#endif int ret = 0; int msec = 1000; int freq = 400; @@ -50,13 +42,9 @@ static int do_play(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) if (argc > 2) freq = simple_strtoul(argv[2], NULL, 10); -#ifdef CONFIG_DM_SOUND ret = uclass_first_device_err(UCLASS_SOUND, &dev); if (!ret) ret = sound_beep(dev, msec, freq); -#else - ret = sound_play(msec, freq); -#endif if (ret) { printf("Sound device failed to play (err=%d)\n", ret); return CMD_RET_FAILURE; diff --git a/configs/arndale_defconfig b/configs/arndale_defconfig index 22881c3a2c..2b6af4b221 100644 --- a/configs/arndale_defconfig +++ b/configs/arndale_defconfig @@ -31,7 +31,6 @@ CONFIG_MMC_SDHCI_S5P=y CONFIG_SMC911X=y CONFIG_SMC911X_BASE=0x5000000 CONFIG_SOUND=y -CONFIG_DM_SOUND=y CONFIG_I2S=y CONFIG_I2S_SAMSUNG=y CONFIG_SOUND_MAX98095=y diff --git a/configs/peach-pi_defconfig b/configs/peach-pi_defconfig index 32b32dd901..14c835cad8 100644 --- a/configs/peach-pi_defconfig +++ b/configs/peach-pi_defconfig @@ -50,7 +50,6 @@ CONFIG_REGULATOR_TPS65090=y CONFIG_DM_PWM=y CONFIG_PWM_EXYNOS=y CONFIG_SOUND=y -CONFIG_DM_SOUND=y CONFIG_I2S=y CONFIG_I2S_SAMSUNG=y CONFIG_SOUND_MAX98090=y diff --git a/configs/peach-pit_defconfig b/configs/peach-pit_defconfig index 7018737ab4..9a3a11504d 100644 --- a/configs/peach-pit_defconfig +++ b/configs/peach-pit_defconfig @@ -49,7 +49,6 @@ CONFIG_REGULATOR_TPS65090=y CONFIG_DM_PWM=y CONFIG_PWM_EXYNOS=y CONFIG_SOUND=y -CONFIG_DM_SOUND=y CONFIG_I2S=y CONFIG_I2S_SAMSUNG=y CONFIG_SOUND_MAX98090=y diff --git a/configs/smdk5250_defconfig b/configs/smdk5250_defconfig index 1e058227e4..21018d8b1b 100644 --- a/configs/smdk5250_defconfig +++ b/configs/smdk5250_defconfig @@ -43,7 +43,6 @@ CONFIG_DM_PMIC_MAX77686=y CONFIG_DM_REGULATOR=y CONFIG_DM_REGULATOR_MAX77686=y CONFIG_SOUND=y -CONFIG_DM_SOUND=y CONFIG_I2S=y CONFIG_I2S_SAMSUNG=y CONFIG_SOUND_MAX98095=y diff --git a/configs/snow_defconfig b/configs/snow_defconfig index 10e11fbb33..e0c1bf862c 100644 --- a/configs/snow_defconfig +++ b/configs/snow_defconfig @@ -60,7 +60,6 @@ CONFIG_DM_PWM=y CONFIG_PWM_EXYNOS=y CONFIG_DEBUG_UART_S5P=y CONFIG_SOUND=y -CONFIG_DM_SOUND=y CONFIG_I2S=y CONFIG_I2S_SAMSUNG=y CONFIG_SOUND_MAX98095=y diff --git a/configs/spring_defconfig b/configs/spring_defconfig index 844a87734b..c089517692 100644 --- a/configs/spring_defconfig +++ b/configs/spring_defconfig @@ -60,7 +60,6 @@ CONFIG_DM_PWM=y CONFIG_PWM_EXYNOS=y CONFIG_DEBUG_UART_S5P=y CONFIG_SOUND=y -CONFIG_DM_SOUND=y CONFIG_I2S=y CONFIG_I2S_SAMSUNG=y CONFIG_SOUND_MAX98095=y diff --git a/drivers/sound/Kconfig b/drivers/sound/Kconfig index 18d7ca1dcb..c0d97cca33 100644 --- a/drivers/sound/Kconfig +++ b/drivers/sound/Kconfig @@ -12,12 +12,6 @@ config SOUND audio codecs are called from the sound-i2s code. This could be converted to driver model. -config DM_SOUND - bool "Use driver model for sound" - help - Enable this option to use driver model for sound devices. This is a - migration option and will be removed. - config I2S bool "Enable I2S support" depends on SOUND diff --git a/drivers/sound/Makefile b/drivers/sound/Makefile index 937df152fe..1de4346ec7 100644 --- a/drivers/sound/Makefile +++ b/drivers/sound/Makefile @@ -4,16 +4,12 @@ # R. Chandrasekar <rcsekar@samsung.com> obj-$(CONFIG_SOUND) += sound.o -obj-$(CONFIG_DM_SOUND) += codec-uclass.o -obj-$(CONFIG_DM_SOUND) += i2s-uclass.o -obj-$(CONFIG_DM_SOUND) += sound-uclass.o +obj-$(CONFIG_SOUND) += codec-uclass.o +obj-$(CONFIG_SOUND) += i2s-uclass.o +obj-$(CONFIG_SOUND) += sound-uclass.o obj-$(CONFIG_I2S_SAMSUNG) += samsung-i2s.o obj-$(CONFIG_SOUND_SANDBOX) += sandbox.o -ifdef CONFIG_DM_SOUND obj-$(CONFIG_I2S_SAMSUNG) += samsung_sound.o -else -obj-$(CONFIG_I2S) += sound-i2s.o -endif obj-$(CONFIG_SOUND_WM8994) += wm8994.o obj-$(CONFIG_SOUND_MAX98090) += max98090.o maxim_codec.o obj-$(CONFIG_SOUND_MAX98095) += max98095.o maxim_codec.o diff --git a/drivers/sound/max98095.c b/drivers/sound/max98095.c index e9bf64f82f..93be50c34a 100644 --- a/drivers/sound/max98095.c +++ b/drivers/sound/max98095.c @@ -432,84 +432,6 @@ static int max98095_do_init(struct maxim_priv *priv, return ret; } -#ifndef CONFIG_DM_SOUND -static int get_max98095_codec_values(struct sound_codec_info *pcodec_info, - const void *blob) -{ - int error = 0; - enum fdt_compat_id compat; - int node; - int parent; - - /* Get the node from FDT for codec */ - node = fdtdec_next_compatible(blob, 0, COMPAT_MAXIM_98095_CODEC); - if (node <= 0) { - debug("EXYNOS_SOUND: No node for codec in device tree\n"); - debug("node = %d\n", node); - return -1; - } - - parent = fdt_parent_offset(blob, node); - if (parent < 0) { - debug("%s: Cannot find node parent\n", __func__); - return -1; - } - - compat = fdtdec_lookup(blob, parent); - switch (compat) { - case COMPAT_SAMSUNG_S3C2440_I2C: - pcodec_info->i2c_bus = i2c_get_bus_num_fdt(parent); - error |= pcodec_info->i2c_bus; - debug("i2c bus = %d\n", pcodec_info->i2c_bus); - pcodec_info->i2c_dev_addr = fdtdec_get_int(blob, node, - "reg", 0); - error |= pcodec_info->i2c_dev_addr; - debug("i2c dev addr = %x\n", pcodec_info->i2c_dev_addr); - break; - default: - debug("%s: Unknown compat id %d\n", __func__, compat); - return -1; - } - if (error == -1) { - debug("fail to get max98095 codec node properties\n"); - return -1; - } - - return 0; -} - -/* max98095 Device Initialisation */ -int max98095_init(const void *blob, enum en_max_audio_interface aif_id, - int sampling_rate, int mclk_freq, - int bits_per_sample) -{ - int ret; - int old_bus = i2c_get_bus_num(); - struct sound_codec_info pcodec_info; - struct max98095_priv max98095_info; - - if (get_max98095_codec_values(&pcodec_info, blob) < 0) { - debug("FDT Codec values failed\n"); - return -1; - } - - i2c_set_bus_num(pcodec_info.i2c_bus); - - max98095_info.i2c_addr = pcodec_info.i2c_dev_addr; - ret = max98095_device_init(&max98095_info); - if (ret < 0) { - debug("%s: max98095 codec chip init failed\n", __func__); - return ret; - } - - ret = max98095_do_init(&max98095_info, aif_id, sampling_rate, mclk_freq, - bits_per_sample); - i2c_set_bus_num(old_bus); - - return ret; -} -#endif - static int max98095_set_params(struct udevice *dev, int interface, int rate, int mclk_freq, int bits_per_sample, uint channels) diff --git a/drivers/sound/sandbox.c b/drivers/sound/sandbox.c index 83b3295f0d..089d830972 100644 --- a/drivers/sound/sandbox.c +++ b/drivers/sound/sandbox.c @@ -8,7 +8,6 @@ #include <dm.h> #include <i2s.h> #include <sound.h> -#include <asm/sound.h> #include <asm/sdl.h> struct sandbox_codec_priv { @@ -28,22 +27,6 @@ struct sandbox_sound_priv { int sum; /* Use to sum the provided audio data */ }; -#ifndef CONFIG_DM_SOUND -int sound_play(uint32_t msec, uint32_t frequency) -{ - sandbox_sdl_sound_start(frequency); - mdelay(msec); - sandbox_sdl_sound_stop(); - - return 0; -} -#endif /* CONFIG_DM_SOUND */ - -int sound_init(const void *blob) -{ - return sandbox_sdl_sound_init(); -} - void sandbox_get_codec_params(struct udevice *dev, int *interfacep, int *ratep, int *mclk_freqp, int *bits_per_samplep, uint *channelsp) @@ -102,7 +85,7 @@ static int sandbox_i2s_tx_data(struct udevice *dev, void *data, for (i = 0; i < data_size; i++) priv->sum += ((uint8_t *)data)[i]; - return 0; + return sandbox_sdl_sound_play(data, data_size); } static int sandbox_i2s_probe(struct udevice *dev) diff --git a/drivers/sound/sound-i2s.c b/drivers/sound/sound-i2s.c deleted file mode 100644 index a2fc78154f..0000000000 --- a/drivers/sound/sound-i2s.c +++ /dev/null @@ -1,206 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0+ -/* - * Copyright (C) 2012 Samsung Electronics - * R. Chandrasekar <rcsekar@samsung.com> - */ - -#include <malloc.h> -#include <common.h> -#include <asm/io.h> -#include <linux/libfdt.h> -#include <fdtdec.h> -#include <i2c.h> -#include <i2s.h> -#include <sound.h> -#include <asm/arch/sound.h> -#include "wm8994.h" -#include "max98095.h" - -/* defines */ -#define SOUND_400_HZ 400 -#define SOUND_BITS_IN_BYTE 8 - -static struct i2s_uc_priv g_i2stx_pri; - -/* - * get_sound_i2s_values gets values for i2s parameters - * - * @param i2s_uc_priv i2s transmitter transfer param structure - * @param blob FDT blob if enabled else NULL - */ -static int get_sound_i2s_values(struct i2s_uc_priv *i2s, const void *blob) -{ - int node; - int error = 0; - int base; - - node = fdt_path_offset(blob, "i2s"); - if (node <= 0) { - debug("EXYNOS_SOUND: No node for sound in device tree\n"); - return -1; - } - - /* - * Get the pre-defined sound specific values from FDT. - * All of these are expected to be correct otherwise - * wrong register values in i2s setup parameters - * may result in no sound play. - */ - base = fdtdec_get_addr(blob, node, "reg"); - if (base == FDT_ADDR_T_NONE) { - debug("%s: Missing i2s base\n", __func__); - return -1; - } - i2s->base_address = base; - - i2s->audio_pll_clk = fdtdec_get_int(blob, - node, "samsung,i2s-epll-clock-frequency", -1); - error |= i2s->audio_pll_clk; - debug("audio_pll_clk = %d\n", i2s->audio_pll_clk); - i2s->samplingrate = fdtdec_get_int(blob, - node, "samsung,i2s-sampling-rate", -1); - error |= i2s->samplingrate; - debug("samplingrate = %d\n", i2s->samplingrate); - i2s->bitspersample = fdtdec_get_int(blob, - node, "samsung,i2s-bits-per-sample", -1); - error |= i2s->bitspersample; - debug("bitspersample = %d\n", i2s->bitspersample); - i2s->channels = fdtdec_get_int(blob, - node, "samsung,i2s-channels", -1); - error |= i2s->channels; - debug("channels = %d\n", i2s->channels); - i2s->rfs = fdtdec_get_int(blob, - node, "samsung,i2s-lr-clk-framesize", -1); - error |= i2s->rfs; - debug("rfs = %d\n", i2s->rfs); - i2s->bfs = fdtdec_get_int(blob, - node, "samsung,i2s-bit-clk-framesize", -1); - error |= i2s->bfs; - debug("bfs = %d\n", i2s->bfs); - - i2s->id = fdtdec_get_int(blob, node, "samsung,i2s-id", -1); - error |= i2s->id; - debug("id = %d\n", i2s->id); - - if (error == -1) { - debug("fail to get sound i2s node properties\n"); - return -1; - } - - return 0; -} - -/* - * Init codec - * - * @param blob FDT blob - * @param pi2s_tx i2s parameters required by codec - * @return int value, 0 for success - */ -static int codec_init(const void *blob, struct i2s_uc_priv *pi2s_tx) -{ - int ret; - const char *codectype; - int node; - - /* Get the node from FDT for sound */ - node = fdt_path_offset(blob, "i2s"); - if (node <= 0) { - debug("EXYNOS_SOUND: No node for sound in device tree\n"); - debug("node = %d\n", node); - return -1; - } - - /* - * Get the pre-defined sound codec specific values from FDT. - * All of these are expected to be correct otherwise sound - * can not be played - */ - codectype = fdt_getprop(blob, node, "samsung,codec-type", NULL); - debug("device = %s\n", codectype); - if (!strcmp(codectype, "wm8994")) { - /* Check the codec type and initialise the same */ - ret = wm8994_init(blob, pi2s_tx->id, pi2s_tx->samplingrate, - (pi2s_tx->samplingrate * (pi2s_tx->rfs)), - pi2s_tx->bitspersample, pi2s_tx->channels); - } else if (!strcmp(codectype, "max98095")) { - ret = max98095_init(blob, pi2s_tx->id, pi2s_tx->samplingrate, - (pi2s_tx->samplingrate * (pi2s_tx->rfs)), - pi2s_tx->bitspersample); - } else { - debug("%s: Unknown codec type %s\n", __func__, codectype); - return -1; - } - - if (ret) { - debug("%s: Codec init failed\n", __func__); - return -1; - } - - return 0; -} - -int sound_init(const void *blob) -{ - int ret; - struct i2s_uc_priv *pi2s_tx = &g_i2stx_pri; - - /* Get the I2S Values */ - if (get_sound_i2s_values(pi2s_tx, blob) < 0) { - debug(" FDT I2S values failed\n"); - return -1; - } - - if (codec_init(blob, pi2s_tx) < 0) { - debug(" Codec init failed\n"); - return -1; - } - - ret = i2s_tx_init(pi2s_tx); - if (ret) { - debug("%s: Failed to init i2c transmit: ret=%d\n", __func__, - ret); - return ret; - } - - - return ret; -} - -int sound_play(uint32_t msec, uint32_t frequency) -{ - unsigned int *data; - unsigned long data_size; - unsigned int ret = 0; - - /*Buffer length computation */ - data_size = g_i2stx_pri.samplingrate * g_i2stx_pri.channels; - data_size *= (g_i2stx_pri.bitspersample / SOUND_BITS_IN_BYTE); - data = malloc(data_size); - - if (data == NULL) { - debug("%s: malloc failed\n", __func__); - return -1; - } - - sound_create_square_wave(g_i2stx_pri.samplingrate, - (unsigned short *)data, - data_size / sizeof(unsigned short), - frequency); - - while (msec >= 1000) { - ret = i2s_transfer_tx_data(&g_i2stx_pri, data, - (data_size / sizeof(int))); - msec -= 1000; - } - if (msec) { - unsigned long size = - (data_size * msec) / (sizeof(int) * 1000); - - ret = i2s_transfer_tx_data(&g_i2stx_pri, data, size); - } - - free(data); - - return ret; -} diff --git a/drivers/sound/wm8994.c b/drivers/sound/wm8994.c index d731a0dd86..b290c4e879 100644 --- a/drivers/sound/wm8994.c +++ b/drivers/sound/wm8994.c @@ -40,7 +40,6 @@ struct wm8994_priv { int mclk[WM8994_MAX_AIF]; /* master clock frequency in Hz */ int aifclk[WM8994_MAX_AIF]; /* audio interface clock in Hz */ struct wm8994_fll_config fll[2]; /* fll config to configure fll */ - int i2c_addr; struct udevice *dev; }; @@ -82,12 +81,7 @@ static int wm8994_i2c_write(struct wm8994_priv *priv, unsigned int reg, val[1] = (unsigned char)(data & 0xff); debug("Write Addr : 0x%04X, Data : 0x%04X\n", reg, data); -#ifdef CONFIG_DM_SOUND - debug("dev = %s\n", priv->dev->name); return dm_i2c_write(priv->dev, reg, val, 2); -#else - return i2c_write(priv->i2c_addr, reg, 2, val, 2); -#endif } /* @@ -105,11 +99,7 @@ static unsigned int wm8994_i2c_read(struct wm8994_priv *priv, unsigned int reg, unsigned char val[2]; int ret; -#ifdef CONFIG_DM_SOUND ret = dm_i2c_read(priv->dev, reg, val, 1); -#else - ret = i2c_read(priv->i2c_addr, reg, 2, val, 2); -#endif if (ret != 0) { debug("%s: Error while reading register %#04x\n", __func__, reg); @@ -819,61 +809,6 @@ err: return -1; } -#ifndef CONFIG_DM_SOUND -/* - * Gets fdt values for wm8994 config parameters - * - * @param pcodec_info codec information structure - * @param blob FDT blob - * @return int value, 0 for success - */ -static int get_codec_values(struct sound_codec_info *pcodec_info, - const void *blob) -{ - int error = 0; - enum fdt_compat_id compat; - int node; - int parent; - - /* Get the node from FDT for codec */ - node = fdtdec_next_compatible(blob, 0, COMPAT_WOLFSON_WM8994_CODEC); - if (node <= 0) { - debug("EXYNOS_SOUND: No node for codec in device tree\n"); - debug("node = %d\n", node); - return -1; - } - - parent = fdt_parent_offset(blob, node); - if (parent < 0) { - debug("%s: Cannot find node parent\n", __func__); - return -1; - } - - compat = fdtdec_lookup(blob, parent); - switch (compat) { - case COMPAT_SAMSUNG_S3C2440_I2C: - pcodec_info->i2c_bus = i2c_get_bus_num_fdt(parent); - error |= pcodec_info->i2c_bus; - debug("i2c bus = %d\n", pcodec_info->i2c_bus); - pcodec_info->i2c_dev_addr = fdtdec_get_int(blob, node, - "reg", 0); - error |= pcodec_info->i2c_dev_addr; - debug("i2c dev addr = %d\n", pcodec_info->i2c_dev_addr); - break; - default: - debug("%s: Unknown compat id %d\n", __func__, compat); - return -1; - } - - if (error == -1) { - debug("fail to get wm8994 codec node properties\n"); - return -1; - } - - return 0; -} -#endif - static int _wm8994_init(struct wm8994_priv *priv, enum en_audio_interface aif_id, int sampling_rate, int mclk_freq, int bits_per_sample, @@ -905,36 +840,6 @@ static int _wm8994_init(struct wm8994_priv *priv, return ret; } -#ifndef CONFIG_DM_SOUND -/* WM8994 Device Initialisation */ -int wm8994_init(const void *blob, enum en_audio_interface aif_id, - int sampling_rate, int mclk_freq, int bits_per_sample, - unsigned int channels) -{ - struct sound_codec_info pcodec_info; - struct wm8994_priv wm8994_info; - int ret; - - /* Get the codec Values */ - if (get_codec_values(&pcodec_info, blob) < 0) { - debug("FDT Codec values failed\n"); - return -1; - } - - /* shift the device address by 1 for 7 bit addressing */ - wm8994_info.i2c_addr = pcodec_info.i2c_dev_addr; - i2c_set_bus_num(pcodec_info.i2c_bus); - ret = wm8994_device_init(&wm8994_info); - if (ret < 0) { - debug("%s: wm8994 codec chip init failed\n", __func__); - return ret; - } - - return _wm8994_init(&wm8994_info, aif_id, sampling_rate, mclk_freq, - bits_per_sample, channels); -} -#endif - static int wm8994_set_params(struct udevice *dev, int interface, int rate, int mclk_freq, int bits_per_sample, uint channels) { diff --git a/include/sound.h b/include/sound.h index c94d2c3726..02acefd34f 100644 --- a/include/sound.h +++ b/include/sound.h @@ -46,14 +46,6 @@ void sound_create_square_wave(uint sample_rate, unsigned short *data, int size, uint freq); /* - * Initialises audio sub system - * @param blob Pointer of device tree node or NULL if none. - * @return int value 0 for success, -1 for error - */ -int sound_init(const void *blob); - -#ifdef CONFIG_DM_SOUND -/* * The sound uclass brings together a data transport (currently only I2C) and a * codec (currently connected over I2C). */ @@ -101,14 +93,4 @@ int sound_beep(struct udevice *dev, int msecs, int frequency_hz); */ int sound_find_codec_i2s(struct udevice *dev); -#else -/* - * plays the pcm data buffer in pcm_data.h through i2s1 to make the - * sine wave sound - * - * @return int 0 for success, -1 for error - */ -int sound_play(uint32_t msec, uint32_t frequency); -#endif /* CONFIG_DM_SOUND */ - #endif /* __SOUND__H__ */ diff --git a/test/dm/Makefile b/test/dm/Makefile index 73f5dcf739..6b451060d8 100644 --- a/test/dm/Makefile +++ b/test/dm/Makefile @@ -13,7 +13,7 @@ obj-$(CONFIG_UT_DM) += test-uclass.o # subsystem you must add sandbox tests here. obj-$(CONFIG_UT_DM) += core.o ifneq ($(CONFIG_SANDBOX),) -obj-$(CONFIG_DM_SOUND) += audio.o +obj-$(CONFIG_SOUND) += audio.o obj-$(CONFIG_BLK) += blk.o obj-$(CONFIG_BOARD) += board.o obj-$(CONFIG_CLK) += clk.o @@ -22,7 +22,7 @@ obj-$(CONFIG_FIRMWARE) += firmware.o obj-$(CONFIG_DM_GPIO) += gpio.o obj-$(CONFIG_DM_HWSPINLOCK) += hwspinlock.o obj-$(CONFIG_DM_I2C) += i2c.o -obj-$(CONFIG_DM_SOUND) += i2s.o +obj-$(CONFIG_SOUND) += i2s.o obj-$(CONFIG_LED) += led.o obj-$(CONFIG_DM_MAILBOX) += mailbox.o obj-$(CONFIG_DM_MMC) += mmc.o @@ -55,7 +55,7 @@ obj-$(CONFIG_AXI) += axi.o obj-$(CONFIG_MISC) += misc.o obj-$(CONFIG_DM_SERIAL) += serial.o obj-$(CONFIG_CPU) += cpu.o -obj-$(CONFIG_DM_SOUND) += sound.o +obj-$(CONFIG_SOUND) += sound.o obj-$(CONFIG_TEE) += tee.o obj-$(CONFIG_VIRTIO_SANDBOX) += virtio.o obj-$(CONFIG_DMA) += dma.o |