Skip to contentSkip to conversation

ASoC: S3C2412 IIS driver

PATCH In review Ben Dooks 3 participants 3 messages Nov 20, 2007 – Nov 23, 2007

Subsystems (2)
lore
Share & tools
lore

Ben Dooks

author
#0 lore raw

PATCH 1/1 ASoC: S3C2412 IIS driver

S3C2412 SoC IIS support for ALSA/ASoC

sound/soc/s3c24xx/Kconfig +3 -0
diff -urpN -X linux-2.6.24-rc3/Documentation/dontdiff linux-2.6.24-rc3/sound/soc/s3c24xx/Kconfig linux-2.6.24-rc3-asoc1/sound/soc/s3c24xx/Kconfig
@@ -10,6 +10,9 @@ config SND_S3C24XX_SOC
 config SND_S3C24XX_SOC_I2S
 	tristate
 
+config SND_S3C2412_SOC_I2S
+	tristate
+
 config SND_S3C2443_SOC_AC97
 	tristate
 	select AC97_BUS
sound/soc/s3c24xx/Makefile +2 -0
diff -urpN -X linux-2.6.24-rc3/Documentation/dontdiff linux-2.6.24-rc3/sound/soc/s3c24xx/Makefile linux-2.6.24-rc3-asoc1/sound/soc/s3c24xx/Makefile
@@ -1,11 +1,13 @@
 # S3c24XX Platform Support
 snd-soc-s3c24xx-objs := s3c24xx-pcm.o
 snd-soc-s3c24xx-i2s-objs := s3c24xx-i2s.o
+snd-soc-s3c2412-i2s-objs := s3c2412-i2s.o
 snd-soc-s3c2443-ac97-objs := s3c2443-ac97.o
 
 obj-$(CONFIG_SND_S3C24XX_SOC) += snd-soc-s3c24xx.o
 obj-$(CONFIG_SND_S3C24XX_SOC_I2S) += snd-soc-s3c24xx-i2s.o
 obj-$(CONFIG_SND_S3C2443_SOC_AC97) += snd-soc-s3c2443-ac97.o
+obj-$(CONFIG_SND_S3C2412_SOC_I2S) += snd-soc-s3c2412-i2s.o
 
 # S3C24XX Machine Support
 snd-soc-neo1973-wm8753-objs := neo1973_wm8753.o
sound/soc/s3c24xx/s3c2412-i2s.c +686 -0

686 lines not on this page · raw message

sound/soc/s3c24xx/s3c2412-i2s.h +38 -0
diff -urpN -X linux-2.6.24-rc3/Documentation/dontdiff linux-2.6.24-rc3/sound/soc/s3c24xx/s3c2412-i2s.h linux-2.6.24-rc3-asoc1/sound/soc/s3c24xx/s3c2412-i2s.h
@@ -0,0 +1,38 @@
+/* sound/soc/s3c24xx/s3c2412-i2s.c
+ *
+ * ALSA Soc Audio Layer - S3C2412 I2S driver
+ *
+ * Copyright (c) 2007 Simtec Electronics
+ *	http://armlinux.simtec.co.uk/
+ *	Ben Dooks <[email protected]>
+ *
+ *  This program is free software; you can redistribute  it and/or modify it
+ *  under  the terms of  the GNU General  Public License as published by the
+ *  Free Software Foundation;  either version 2 of the  License, or (at your
+ *  option) any later version.
+*/
+
+#ifndef __SND_SOC_S3C24XX_S3C2412_I2S_H
+#define __SND_SOC_S3C24XX_S3C2412_I2S_H __FILE__
+
+#define S3C2412_DIV_BCLK	(1)
+#define S3C2412_DIV_RCLK	(2)
+#define S3C2412_DIV_PRESCALER	(3)
+
+#define S3C2412_CLKSRC_PCLK	(0)
+#define S3C2412_CLKSRC_I2SCLK	(1)
+
+extern struct clk *s3c2412_get_iisclk(void);
+
+extern struct snd_soc_cpu_dai s3c2412_i2s_dai;
+
+struct s3c2412_rate_calc {
+	unsigned int	clk_div;	/* for prescaler */
+	unsigned int	fs_div;		/* for root frame clock */
+};
+
+extern int s3c2412_iis_calc_rate(struct s3c2412_rate_calc *info,
+				 unsigned int *fstab,
+				 unsigned int rate, struct clk *clk);
+
+#endif /* __SND_SOC_S3C24XX_S3C2412_I2S_H */
#1 lore raw
Quoted 3 lines · Ben Dooks

S3C2412 SoC IIS support for ALSA/ASoC

Looks good, thanks - I've applied this to the linux-2.6-asoc tree with some minor checkpatch.pl cleanups (everything except the line lengths).

I did notice these:

Review

Quoted 3 lines
(quoted diff) +2 -0
+#define bit_set(v,b) (((v) & (b)) ? 1 : 0)
 
+#define ABS(x) (((x) < 0) ? (-(x)) : (x))

which look like they ought to be hoisted out into generic code.

#2 lore raw

At Thu, 22 Nov 2007 13:06:19 +0000,

Quoted 12 lines · Mark Brown
Quoted 3 lines · Ben Dooks

S3C2412 SoC IIS support for ALSA/ASoC

Looks good, thanks - I've applied this to the linux-2.6-asoc tree with some minor checkpatch.pl cleanups (everything except the line lengths).

Quoted 7 lines

I did notice these:

Review

Quoted 3 lines
(quoted diff) +2 -0
+#define bit_set(v,b) (((v) & (b)) ? 1 : 0)
 
+#define ABS(x) (((x) < 0) ? (-(x)) : (x))

which look like they ought to be hoisted out into generic code.

Yes, at least, we have already abs() in linux/kernel.h. Not sure about bit_set(), though.

Takashi