From afcd64579486e1745a3cb964bfe36267d90b4c3e Mon Sep 17 00:00:00 2001
From: Simon Glass <sjg@chromium.org>
Date: Thu, 27 Dec 2018 13:24:39 -0700
Subject: [PATCH] sound: Allow audio codecs to be used by other SoCs

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         | 8 ++++----
 drivers/sound/max98088.c      | 7 -------
 drivers/sound/max98090.c      | 7 -------
 drivers/sound/max98095.c      | 7 -------
 drivers/sound/maxim_codec.c   | 3 ---
 drivers/sound/samsung_sound.c | 4 ++++
 6 files changed, 8 insertions(+), 28 deletions(-)

diff --git a/drivers/sound/Kconfig b/drivers/sound/Kconfig
index bd72dd335e..40f4f7598a 100644
--- a/drivers/sound/Kconfig
+++ b/drivers/sound/Kconfig
@@ -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
diff --git a/drivers/sound/max98088.c b/drivers/sound/max98088.c
index 08f0bf861e..332254d5aa 100644
--- a/drivers/sound/max98088.c
+++ b/drivers/sound/max98088.c
@@ -16,10 +16,6 @@
 #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) {
diff --git a/drivers/sound/max98090.c b/drivers/sound/max98090.c
index 346ff5ffbe..5505c35166 100644
--- a/drivers/sound/max98090.c
+++ b/drivers/sound/max98090.c
@@ -13,10 +13,6 @@
 #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) {
diff --git a/drivers/sound/max98095.c b/drivers/sound/max98095.c
index 99c0e996b4..9e08e96670 100644
--- a/drivers/sound/max98095.c
+++ b/drivers/sound/max98095.c
@@ -15,10 +15,6 @@
 #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) {
diff --git a/drivers/sound/maxim_codec.c b/drivers/sound/maxim_codec.c
index dcaf081988..5480dce108 100644
--- a/drivers/sound/maxim_codec.c
+++ b/drivers/sound/maxim_codec.c
@@ -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"
 
 /*
diff --git a/drivers/sound/samsung_sound.c b/drivers/sound/samsung_sound.c
index 84064ebd0f..b6952675bd 100644
--- a/drivers/sound/samsung_sound.c
+++ b/drivers/sound/samsung_sound.c
@@ -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;
 }
 
-- 
2.39.5