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 bd72dd335e9d7e791ec3431de6adaea3179b1739..40f4f7598aae4e1b6c9798e4de1226b02188790f 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 08f0bf861e335423eb9c79d37e5338ad9ddb1ae6..332254d5aa57bb0aa2130464c8ec821403c861b5 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 346ff5ffbec9b584f6931689f21642d6c7836196..5505c3516667a49a7a2dec75c8e0c355f639cd93 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 99c0e996b4fb47d94162a88e7b6c399b9abe64a7..9e08e96670e17e17c920cf6cf4791c0a2d14b63b 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 dcaf081988bf4ec5747d9146bf68dcefce2910f2..5480dce1080b0049266d67b85ded007921d91894 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 84064ebd0fe9d1ac8b345151394ebc04f766d4ce..b6952675bdec047e41fd285070b89e20e9a004c5 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;
 }