sound: Allow audio codecs to be used by other SoCs
authorSimon Glass <sjg@chromium.org>
Thu, 27 Dec 2018 20:24:39 +0000 (13:24 -0700)
committerSimon Glass <sjg@chromium.org>
Sat, 9 Feb 2019 19:50:22 +0000 (12:50 -0700)
At present there is still some samsung-specific code in the audio codecs.
Remove it so that these can be used by other SoCs.

Signed-off-by: Simon Glass <sjg@chromium.org>
drivers/sound/Kconfig
drivers/sound/max98088.c
drivers/sound/max98090.c
drivers/sound/max98095.c
drivers/sound/maxim_codec.c
drivers/sound/samsung_sound.c

index bd72dd3..40f4f75 100644 (file)
@@ -32,7 +32,7 @@ config I2S_ROCKCHIP
 
 config I2S_SAMSUNG
        bool "Enable I2C support for Samsung SoCs"
-       depends on SOUND
+       depends on I2S
        help
          Samsung Exynos SoCs support an I2S interface for sending audio
          data to an audio codec. This option enables support for this,
@@ -42,7 +42,7 @@ config I2S_SAMSUNG
 
 config SOUND_MAX98088
        bool "Support Maxim max98088 audio codec"
-       depends on I2S_SAMSUNG
+       depends on I2S
        help
          Enable the max98088 audio codec. This is connected via I2S for
          audio data and I2C for codec control. At present it only works
@@ -50,7 +50,7 @@ config SOUND_MAX98088
 
 config SOUND_MAX98090
        bool "Support Maxim max98090 audio codec"
-       depends on I2S_SAMSUNG
+       depends on I2S
        help
          Enable the max98090 audio codec. This is connected via I2S for
          audio data and I2C for codec control. At present it only works
@@ -58,7 +58,7 @@ config SOUND_MAX98090
 
 config SOUND_MAX98095
        bool "Support Maxim max98095 audio codec"
-       depends on I2S_SAMSUNG
+       depends on I2S
        help
          Enable the max98095 audio codec. This is connected via I2S for
          audio data and I2C for codec control. At present it only works
index 08f0bf8..332254d 100644 (file)
 #include <i2s.h>
 #include <sound.h>
 #include <asm/gpio.h>
-#include <asm/io.h>
-#include <asm/arch/clk.h>
-#include <asm/arch/cpu.h>
-#include <asm/arch/power.h>
 #include "maxim_codec.h"
 #include "max98088.h"
 
@@ -288,9 +284,6 @@ static int max98088_device_init(struct maxim_priv *priv)
        unsigned char id;
        int error = 0;
 
-       /* Enable codec clock */
-       set_xclkout();
-
        /* reset the codec, the DSP core, and disable all interrupts */
        error = max98088_reset(priv);
        if (error != 0) {
index 346ff5f..5505c35 100644 (file)
 #include <i2s.h>
 #include <sound.h>
 #include <asm/gpio.h>
-#include <asm/io.h>
-#include <asm/arch/clk.h>
-#include <asm/arch/cpu.h>
-#include <asm/arch/power.h>
 #include "maxim_codec.h"
 #include "max98090.h"
 
@@ -240,9 +236,6 @@ int max98090_device_init(struct maxim_priv *priv)
        unsigned char id;
        int error = 0;
 
-       /* Enable codec clock */
-       set_xclkout();
-
        /* reset the codec, the DSP core, and disable all interrupts */
        error = max98090_reset(priv);
        if (error != 0) {
index 99c0e99..9e08e96 100644 (file)
 #include <i2c.h>
 #include <sound.h>
 #include <asm/gpio.h>
-#include <asm/io.h>
-#include <asm/arch/clk.h>
-#include <asm/arch/cpu.h>
-#include <asm/arch/power.h>
 #include "i2s.h"
 #include "max98095.h"
 
@@ -306,9 +302,6 @@ static int max98095_device_init(struct maxim_priv *priv)
        unsigned char id;
        int ret;
 
-       /* Enable codec clock */
-       set_xclkout();
-
        /* reset the codec, the DSP core, and disable all interrupts */
        ret = max98095_reset(priv);
        if (ret != 0) {
index dcaf081..5480dce 100644 (file)
@@ -12,9 +12,6 @@
 #include <sound.h>
 #include <asm/gpio.h>
 #include <asm/io.h>
-#include <asm/arch/clk.h>
-#include <asm/arch/cpu.h>
-#include <asm/arch/power.h>
 #include "maxim_codec.h"
 
 /*
index 84064eb..b695267 100644 (file)
@@ -10,6 +10,7 @@
 #include <i2s.h>
 #include <sound.h>
 #include <asm/gpio.h>
+#include <asm/arch/power.h>
 
 static int samsung_sound_setup(struct udevice *dev)
 {
@@ -79,6 +80,9 @@ static int samsung_sound_probe(struct udevice *dev)
        debug("Probed sound '%s' with codec '%s' and i2s '%s'\n", dev->name,
              uc_priv->codec->name, uc_priv->i2s->name);
 
+       /* Enable codec clock */
+       set_xclkout();
+
        return 0;
 }