ASoC: Samsung: Add common I2S driver
The I2S controllers since S3C64XX are incremental revisions, with a new feature added to the last one. The programming i/f doesn't conflict between these revisions, so it is possible to have one common driver that could manage various versions of I2S (v3, 4 & 5) Signed-off-by: Jassi Brar <jassi.brar@samsung.com> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
0068402c58
commit
1c7ac01807
@ -41,6 +41,9 @@ config SND_S5P_SOC_SPDIF
|
|||||||
tristate
|
tristate
|
||||||
select SND_SOC_SPDIF
|
select SND_SOC_SPDIF
|
||||||
|
|
||||||
|
config SND_SAMSUNG_I2S
|
||||||
|
tristate
|
||||||
|
|
||||||
config SND_S3C24XX_SOC_NEO1973_WM8753
|
config SND_S3C24XX_SOC_NEO1973_WM8753
|
||||||
tristate "SoC I2S Audio support for NEO1973 - WM8753"
|
tristate "SoC I2S Audio support for NEO1973 - WM8753"
|
||||||
depends on SND_S3C24XX_SOC && MACH_NEO1973_GTA01
|
depends on SND_S3C24XX_SOC && MACH_NEO1973_GTA01
|
||||||
|
@ -8,6 +8,7 @@ snd-soc-s3c64xx-i2s-v4-objs := s3c64xx-i2s-v4.o
|
|||||||
snd-soc-s3c-i2s-v2-objs := s3c-i2s-v2.o
|
snd-soc-s3c-i2s-v2-objs := s3c-i2s-v2.o
|
||||||
snd-soc-samsung-spdif-objs := spdif.o
|
snd-soc-samsung-spdif-objs := spdif.o
|
||||||
snd-soc-pcm-objs := pcm.o
|
snd-soc-pcm-objs := pcm.o
|
||||||
|
snd-soc-i2s-objs := i2s.o
|
||||||
|
|
||||||
obj-$(CONFIG_SND_S3C24XX_SOC) += snd-soc-s3c24xx.o
|
obj-$(CONFIG_SND_S3C24XX_SOC) += snd-soc-s3c24xx.o
|
||||||
obj-$(CONFIG_SND_S3C24XX_SOC_I2S) += snd-soc-s3c24xx-i2s.o
|
obj-$(CONFIG_SND_S3C24XX_SOC_I2S) += snd-soc-s3c24xx-i2s.o
|
||||||
@ -18,6 +19,7 @@ obj-$(CONFIG_SND_S3C64XX_SOC_I2S_V4) += snd-soc-s3c64xx-i2s-v4.o
|
|||||||
obj-$(CONFIG_SND_S3C_I2SV2_SOC) += snd-soc-s3c-i2s-v2.o
|
obj-$(CONFIG_SND_S3C_I2SV2_SOC) += snd-soc-s3c-i2s-v2.o
|
||||||
obj-$(CONFIG_SND_S5P_SOC_SPDIF) += snd-soc-samsung-spdif.o
|
obj-$(CONFIG_SND_S5P_SOC_SPDIF) += snd-soc-samsung-spdif.o
|
||||||
obj-$(CONFIG_SND_S3C_SOC_PCM) += snd-soc-pcm.o
|
obj-$(CONFIG_SND_S3C_SOC_PCM) += snd-soc-pcm.o
|
||||||
|
obj-$(CONFIG_SND_SAMSUNG_I2S) += snd-soc-i2s.o
|
||||||
|
|
||||||
# S3C24XX Machine Support
|
# S3C24XX Machine Support
|
||||||
snd-soc-jive-wm8750-objs := jive_wm8750.o
|
snd-soc-jive-wm8750-objs := jive_wm8750.o
|
||||||
|
1256
sound/soc/s3c24xx/i2s.c
Normal file
1256
sound/soc/s3c24xx/i2s.c
Normal file
File diff suppressed because it is too large
Load Diff
29
sound/soc/s3c24xx/i2s.h
Normal file
29
sound/soc/s3c24xx/i2s.h
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/* sound/soc/s3c24xx/i2s.h
|
||||||
|
*
|
||||||
|
* ALSA SoC Audio Layer - Samsung I2S Controller driver
|
||||||
|
*
|
||||||
|
* Copyright (c) 2010 Samsung Electronics Co. Ltd.
|
||||||
|
* Jaswinder Singh <jassi.brar@samsung.com>
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
* published by the Free Software Foundation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __SND_SOC_SAMSUNG_I2S_H
|
||||||
|
#define __SND_SOC_SAMSUNG_I2S_H
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Maximum number of I2S blocks that any SoC can have.
|
||||||
|
* The secondary interface of a CPU dai(if there exists any),
|
||||||
|
* is indexed at [cpu-dai's ID + SAMSUNG_I2S_SECOFF]
|
||||||
|
*/
|
||||||
|
#define SAMSUNG_I2S_SECOFF 4
|
||||||
|
|
||||||
|
#define SAMSUNG_I2S_DIV_BCLK 1
|
||||||
|
|
||||||
|
#define SAMSUNG_I2S_RCLKSRC_0 0
|
||||||
|
#define SAMSUNG_I2S_RCLKSRC_1 1
|
||||||
|
#define SAMSUNG_I2S_CDCLK 2
|
||||||
|
|
||||||
|
#endif /* __SND_SOC_SAMSUNG_I2S_H */
|
Loading…
Reference in New Issue
Block a user