diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-12 08:57:13 -0400 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-12 08:57:13 -0400 |
commit | df00b71fbd5efde56e521bd220a7483b1c15c4be (patch) | |
tree | 6433abc3c35e1b709120428619fed01b98beca09 /sound/soc/samsung | |
parent | 8c7df02167854288e20f76915348ffdc9a11e5c2 (diff) | |
parent | 32873b595371acec3a7c5cd225e266d8426e087f (diff) |
Merge remote-tracking branch 'asoc/topic/samsung' into asoc-next
Diffstat (limited to 'sound/soc/samsung')
-rw-r--r-- | sound/soc/samsung/Kconfig | 5 | ||||
-rw-r--r-- | sound/soc/samsung/ac97.c | 2 | ||||
-rw-r--r-- | sound/soc/samsung/h1940_uda1380.c | 2 | ||||
-rw-r--r-- | sound/soc/samsung/i2s.c | 2 | ||||
-rw-r--r-- | sound/soc/samsung/idma.c | 11 | ||||
-rw-r--r-- | sound/soc/samsung/neo1973_wm8753.c | 3 | ||||
-rw-r--r-- | sound/soc/samsung/regs-ac97.h | 67 | ||||
-rw-r--r-- | sound/soc/samsung/regs-iis.h | 70 | ||||
-rw-r--r-- | sound/soc/samsung/rx1950_uda1380.c | 2 | ||||
-rw-r--r-- | sound/soc/samsung/s3c24xx-i2s.c | 2 | ||||
-rw-r--r-- | sound/soc/samsung/s3c24xx_uda134x.c | 2 |
11 files changed, 155 insertions, 13 deletions
diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig index 90e7e6653233..475fb0d8b3c6 100644 --- a/sound/soc/samsung/Kconfig +++ b/sound/soc/samsung/Kconfig | |||
@@ -35,11 +35,10 @@ config SND_SAMSUNG_I2S | |||
35 | tristate | 35 | tristate |
36 | 36 | ||
37 | config SND_SOC_SAMSUNG_NEO1973_WM8753 | 37 | config SND_SOC_SAMSUNG_NEO1973_WM8753 |
38 | tristate "Audio support for Openmoko Neo1973 Smartphones (GTA01/GTA02)" | 38 | tristate "Audio support for Openmoko Neo1973 Smartphones (GTA02)" |
39 | depends on SND_SOC_SAMSUNG && (MACH_NEO1973_GTA01 || MACH_NEO1973_GTA02) | 39 | depends on SND_SOC_SAMSUNG && MACH_NEO1973_GTA02 |
40 | select SND_S3C24XX_I2S | 40 | select SND_S3C24XX_I2S |
41 | select SND_SOC_WM8753 | 41 | select SND_SOC_WM8753 |
42 | select SND_SOC_LM4857 if MACH_NEO1973_GTA01 | ||
43 | select SND_SOC_DFBMCS320 | 42 | select SND_SOC_DFBMCS320 |
44 | help | 43 | help |
45 | Say Y here to enable audio support for the Openmoko Neo1973 | 44 | Say Y here to enable audio support for the Openmoko Neo1973 |
diff --git a/sound/soc/samsung/ac97.c b/sound/soc/samsung/ac97.c index 32ff594954bc..cb88ead98917 100644 --- a/sound/soc/samsung/ac97.c +++ b/sound/soc/samsung/ac97.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <sound/soc.h> | 20 | #include <sound/soc.h> |
21 | 21 | ||
22 | #include <mach/dma.h> | 22 | #include <mach/dma.h> |
23 | #include <plat/regs-ac97.h> | 23 | #include "regs-ac97.h" |
24 | #include <linux/platform_data/asoc-s3c.h> | 24 | #include <linux/platform_data/asoc-s3c.h> |
25 | 25 | ||
26 | #include "dma.h" | 26 | #include "dma.h" |
diff --git a/sound/soc/samsung/h1940_uda1380.c b/sound/soc/samsung/h1940_uda1380.c index 15a3817aa5c8..fa91376e323d 100644 --- a/sound/soc/samsung/h1940_uda1380.c +++ b/sound/soc/samsung/h1940_uda1380.c | |||
@@ -20,7 +20,7 @@ | |||
20 | #include <sound/soc.h> | 20 | #include <sound/soc.h> |
21 | #include <sound/jack.h> | 21 | #include <sound/jack.h> |
22 | 22 | ||
23 | #include <plat/regs-iis.h> | 23 | #include "regs-iis.h" |
24 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
25 | 25 | ||
26 | #include "s3c24xx-i2s.h" | 26 | #include "s3c24xx-i2s.h" |
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c index abbcbe4b429c..82ebb1a51479 100644 --- a/sound/soc/samsung/i2s.c +++ b/sound/soc/samsung/i2s.c | |||
@@ -1304,7 +1304,7 @@ static struct platform_device_id samsung_i2s_driver_ids[] = { | |||
1304 | }, | 1304 | }, |
1305 | {}, | 1305 | {}, |
1306 | }; | 1306 | }; |
1307 | MODULE_DEVICE_TABLE(platform, samsung-i2s-driver-ids); | 1307 | MODULE_DEVICE_TABLE(platform, samsung_i2s_driver_ids); |
1308 | 1308 | ||
1309 | #ifdef CONFIG_OF | 1309 | #ifdef CONFIG_OF |
1310 | static struct samsung_i2s_dai_data samsung_i2s_dai_data_array[] = { | 1310 | static struct samsung_i2s_dai_data samsung_i2s_dai_data_array[] = { |
diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c index a07950b0c8ce..6e5fed30aa27 100644 --- a/sound/soc/samsung/idma.c +++ b/sound/soc/samsung/idma.c | |||
@@ -68,6 +68,8 @@ static struct idma_info { | |||
68 | dma_addr_t lp_tx_addr; | 68 | dma_addr_t lp_tx_addr; |
69 | } idma; | 69 | } idma; |
70 | 70 | ||
71 | static int idma_irq; | ||
72 | |||
71 | static void idma_getpos(dma_addr_t *src) | 73 | static void idma_getpos(dma_addr_t *src) |
72 | { | 74 | { |
73 | *src = idma.lp_tx_addr + | 75 | *src = idma.lp_tx_addr + |
@@ -305,7 +307,7 @@ static int idma_open(struct snd_pcm_substream *substream) | |||
305 | if (prtd == NULL) | 307 | if (prtd == NULL) |
306 | return -ENOMEM; | 308 | return -ENOMEM; |
307 | 309 | ||
308 | ret = request_irq(IRQ_I2S0, iis_irq, 0, "i2s", prtd); | 310 | ret = request_irq(idma_irq, iis_irq, 0, "i2s", prtd); |
309 | if (ret < 0) { | 311 | if (ret < 0) { |
310 | pr_err("fail to claim i2s irq , ret = %d\n", ret); | 312 | pr_err("fail to claim i2s irq , ret = %d\n", ret); |
311 | kfree(prtd); | 313 | kfree(prtd); |
@@ -324,7 +326,7 @@ static int idma_close(struct snd_pcm_substream *substream) | |||
324 | struct snd_pcm_runtime *runtime = substream->runtime; | 326 | struct snd_pcm_runtime *runtime = substream->runtime; |
325 | struct idma_ctrl *prtd = runtime->private_data; | 327 | struct idma_ctrl *prtd = runtime->private_data; |
326 | 328 | ||
327 | free_irq(IRQ_I2S0, prtd); | 329 | free_irq(idma_irq, prtd); |
328 | 330 | ||
329 | if (!prtd) | 331 | if (!prtd) |
330 | pr_err("idma_close called with prtd == NULL\n"); | 332 | pr_err("idma_close called with prtd == NULL\n"); |
@@ -409,6 +411,7 @@ void idma_reg_addr_init(void __iomem *regs, dma_addr_t addr) | |||
409 | idma.regs = regs; | 411 | idma.regs = regs; |
410 | idma.lp_tx_addr = addr; | 412 | idma.lp_tx_addr = addr; |
411 | } | 413 | } |
414 | EXPORT_SYMBOL_GPL(idma_reg_addr_init); | ||
412 | 415 | ||
413 | static struct snd_soc_platform_driver asoc_idma_platform = { | 416 | static struct snd_soc_platform_driver asoc_idma_platform = { |
414 | .ops = &idma_ops, | 417 | .ops = &idma_ops, |
@@ -418,6 +421,10 @@ static struct snd_soc_platform_driver asoc_idma_platform = { | |||
418 | 421 | ||
419 | static int asoc_idma_platform_probe(struct platform_device *pdev) | 422 | static int asoc_idma_platform_probe(struct platform_device *pdev) |
420 | { | 423 | { |
424 | idma_irq = platform_get_irq(pdev, 0); | ||
425 | if (idma_irq < 0) | ||
426 | return idma_irq; | ||
427 | |||
421 | return snd_soc_register_platform(&pdev->dev, &asoc_idma_platform); | 428 | return snd_soc_register_platform(&pdev->dev, &asoc_idma_platform); |
422 | } | 429 | } |
423 | 430 | ||
diff --git a/sound/soc/samsung/neo1973_wm8753.c b/sound/soc/samsung/neo1973_wm8753.c index a301d8cfaa34..e591c386917a 100644 --- a/sound/soc/samsung/neo1973_wm8753.c +++ b/sound/soc/samsung/neo1973_wm8753.c | |||
@@ -21,8 +21,7 @@ | |||
21 | #include <sound/soc.h> | 21 | #include <sound/soc.h> |
22 | 22 | ||
23 | #include <asm/mach-types.h> | 23 | #include <asm/mach-types.h> |
24 | #include <plat/regs-iis.h> | 24 | #include "regs-iis.h" |
25 | #include <mach/gta02.h> | ||
26 | 25 | ||
27 | #include "../codecs/wm8753.h" | 26 | #include "../codecs/wm8753.h" |
28 | #include "s3c24xx-i2s.h" | 27 | #include "s3c24xx-i2s.h" |
diff --git a/sound/soc/samsung/regs-ac97.h b/sound/soc/samsung/regs-ac97.h new file mode 100644 index 000000000000..c3878f7acb83 --- /dev/null +++ b/sound/soc/samsung/regs-ac97.h | |||
@@ -0,0 +1,67 @@ | |||
1 | /* arch/arm/mach-s3c2410/include/mach/regs-ac97.h | ||
2 | * | ||
3 | * Copyright (c) 2006 Simtec Electronics <linux@simtec.co.uk> | ||
4 | * http://www.simtec.co.uk/products/SWLINUX/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * S3C2440 AC97 Controller | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_AC97_H | ||
14 | #define __ASM_ARCH_REGS_AC97_H __FILE__ | ||
15 | |||
16 | #define S3C_AC97_GLBCTRL (0x00) | ||
17 | |||
18 | #define S3C_AC97_GLBCTRL_CODECREADYIE (1<<22) | ||
19 | #define S3C_AC97_GLBCTRL_PCMOUTURIE (1<<21) | ||
20 | #define S3C_AC97_GLBCTRL_PCMINORIE (1<<20) | ||
21 | #define S3C_AC97_GLBCTRL_MICINORIE (1<<19) | ||
22 | #define S3C_AC97_GLBCTRL_PCMOUTTIE (1<<18) | ||
23 | #define S3C_AC97_GLBCTRL_PCMINTIE (1<<17) | ||
24 | #define S3C_AC97_GLBCTRL_MICINTIE (1<<16) | ||
25 | #define S3C_AC97_GLBCTRL_PCMOUTTM_OFF (0<<12) | ||
26 | #define S3C_AC97_GLBCTRL_PCMOUTTM_PIO (1<<12) | ||
27 | #define S3C_AC97_GLBCTRL_PCMOUTTM_DMA (2<<12) | ||
28 | #define S3C_AC97_GLBCTRL_PCMOUTTM_MASK (3<<12) | ||
29 | #define S3C_AC97_GLBCTRL_PCMINTM_OFF (0<<10) | ||
30 | #define S3C_AC97_GLBCTRL_PCMINTM_PIO (1<<10) | ||
31 | #define S3C_AC97_GLBCTRL_PCMINTM_DMA (2<<10) | ||
32 | #define S3C_AC97_GLBCTRL_PCMINTM_MASK (3<<10) | ||
33 | #define S3C_AC97_GLBCTRL_MICINTM_OFF (0<<8) | ||
34 | #define S3C_AC97_GLBCTRL_MICINTM_PIO (1<<8) | ||
35 | #define S3C_AC97_GLBCTRL_MICINTM_DMA (2<<8) | ||
36 | #define S3C_AC97_GLBCTRL_MICINTM_MASK (3<<8) | ||
37 | #define S3C_AC97_GLBCTRL_TRANSFERDATAENABLE (1<<3) | ||
38 | #define S3C_AC97_GLBCTRL_ACLINKON (1<<2) | ||
39 | #define S3C_AC97_GLBCTRL_WARMRESET (1<<1) | ||
40 | #define S3C_AC97_GLBCTRL_COLDRESET (1<<0) | ||
41 | |||
42 | #define S3C_AC97_GLBSTAT (0x04) | ||
43 | |||
44 | #define S3C_AC97_GLBSTAT_CODECREADY (1<<22) | ||
45 | #define S3C_AC97_GLBSTAT_PCMOUTUR (1<<21) | ||
46 | #define S3C_AC97_GLBSTAT_PCMINORI (1<<20) | ||
47 | #define S3C_AC97_GLBSTAT_MICINORI (1<<19) | ||
48 | #define S3C_AC97_GLBSTAT_PCMOUTTI (1<<18) | ||
49 | #define S3C_AC97_GLBSTAT_PCMINTI (1<<17) | ||
50 | #define S3C_AC97_GLBSTAT_MICINTI (1<<16) | ||
51 | #define S3C_AC97_GLBSTAT_MAINSTATE_IDLE (0<<0) | ||
52 | #define S3C_AC97_GLBSTAT_MAINSTATE_INIT (1<<0) | ||
53 | #define S3C_AC97_GLBSTAT_MAINSTATE_READY (2<<0) | ||
54 | #define S3C_AC97_GLBSTAT_MAINSTATE_ACTIVE (3<<0) | ||
55 | #define S3C_AC97_GLBSTAT_MAINSTATE_LP (4<<0) | ||
56 | #define S3C_AC97_GLBSTAT_MAINSTATE_WARM (5<<0) | ||
57 | |||
58 | #define S3C_AC97_CODEC_CMD (0x08) | ||
59 | |||
60 | #define S3C_AC97_CODEC_CMD_READ (1<<23) | ||
61 | |||
62 | #define S3C_AC97_STAT (0x0c) | ||
63 | #define S3C_AC97_PCM_ADDR (0x10) | ||
64 | #define S3C_AC97_PCM_DATA (0x18) | ||
65 | #define S3C_AC97_MIC_DATA (0x1C) | ||
66 | |||
67 | #endif /* __ASM_ARCH_REGS_AC97_H */ | ||
diff --git a/sound/soc/samsung/regs-iis.h b/sound/soc/samsung/regs-iis.h new file mode 100644 index 000000000000..a18d35e7a735 --- /dev/null +++ b/sound/soc/samsung/regs-iis.h | |||
@@ -0,0 +1,70 @@ | |||
1 | /* arch/arm/plat-samsung/include/plat/regs-iis.h | ||
2 | * | ||
3 | * Copyright (c) 2003 Simtec Electronics <linux@simtec.co.uk> | ||
4 | * http://www.simtec.co.uk/products/SWLINUX/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | * | ||
10 | * S3C2410 IIS register definition | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_REGS_IIS_H | ||
14 | #define __ASM_ARCH_REGS_IIS_H | ||
15 | |||
16 | #define S3C2410_IISCON (0x00) | ||
17 | |||
18 | #define S3C2410_IISCON_LRINDEX (1 << 8) | ||
19 | #define S3C2410_IISCON_TXFIFORDY (1 << 7) | ||
20 | #define S3C2410_IISCON_RXFIFORDY (1 << 6) | ||
21 | #define S3C2410_IISCON_TXDMAEN (1 << 5) | ||
22 | #define S3C2410_IISCON_RXDMAEN (1 << 4) | ||
23 | #define S3C2410_IISCON_TXIDLE (1 << 3) | ||
24 | #define S3C2410_IISCON_RXIDLE (1 << 2) | ||
25 | #define S3C2410_IISCON_PSCEN (1 << 1) | ||
26 | #define S3C2410_IISCON_IISEN (1 << 0) | ||
27 | |||
28 | #define S3C2410_IISMOD (0x04) | ||
29 | |||
30 | #define S3C2440_IISMOD_MPLL (1 << 9) | ||
31 | #define S3C2410_IISMOD_SLAVE (1 << 8) | ||
32 | #define S3C2410_IISMOD_NOXFER (0 << 6) | ||
33 | #define S3C2410_IISMOD_RXMODE (1 << 6) | ||
34 | #define S3C2410_IISMOD_TXMODE (2 << 6) | ||
35 | #define S3C2410_IISMOD_TXRXMODE (3 << 6) | ||
36 | #define S3C2410_IISMOD_LR_LLOW (0 << 5) | ||
37 | #define S3C2410_IISMOD_LR_RLOW (1 << 5) | ||
38 | #define S3C2410_IISMOD_IIS (0 << 4) | ||
39 | #define S3C2410_IISMOD_MSB (1 << 4) | ||
40 | #define S3C2410_IISMOD_8BIT (0 << 3) | ||
41 | #define S3C2410_IISMOD_16BIT (1 << 3) | ||
42 | #define S3C2410_IISMOD_BITMASK (1 << 3) | ||
43 | #define S3C2410_IISMOD_256FS (0 << 2) | ||
44 | #define S3C2410_IISMOD_384FS (1 << 2) | ||
45 | #define S3C2410_IISMOD_16FS (0 << 0) | ||
46 | #define S3C2410_IISMOD_32FS (1 << 0) | ||
47 | #define S3C2410_IISMOD_48FS (2 << 0) | ||
48 | #define S3C2410_IISMOD_FS_MASK (3 << 0) | ||
49 | |||
50 | #define S3C2410_IISPSR (0x08) | ||
51 | |||
52 | #define S3C2410_IISPSR_INTMASK (31 << 5) | ||
53 | #define S3C2410_IISPSR_INTSHIFT (5) | ||
54 | #define S3C2410_IISPSR_EXTMASK (31 << 0) | ||
55 | #define S3C2410_IISPSR_EXTSHFIT (0) | ||
56 | |||
57 | #define S3C2410_IISFCON (0x0c) | ||
58 | |||
59 | #define S3C2410_IISFCON_TXDMA (1 << 15) | ||
60 | #define S3C2410_IISFCON_RXDMA (1 << 14) | ||
61 | #define S3C2410_IISFCON_TXENABLE (1 << 13) | ||
62 | #define S3C2410_IISFCON_RXENABLE (1 << 12) | ||
63 | #define S3C2410_IISFCON_TXMASK (0x3f << 6) | ||
64 | #define S3C2410_IISFCON_TXSHIFT (6) | ||
65 | #define S3C2410_IISFCON_RXMASK (0x3f) | ||
66 | #define S3C2410_IISFCON_RXSHIFT (0) | ||
67 | |||
68 | #define S3C2410_IISFIFO (0x10) | ||
69 | |||
70 | #endif /* __ASM_ARCH_REGS_IIS_H */ | ||
diff --git a/sound/soc/samsung/rx1950_uda1380.c b/sound/soc/samsung/rx1950_uda1380.c index a5826ea9cad6..704460a37005 100644 --- a/sound/soc/samsung/rx1950_uda1380.c +++ b/sound/soc/samsung/rx1950_uda1380.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <sound/soc.h> | 24 | #include <sound/soc.h> |
25 | #include <sound/jack.h> | 25 | #include <sound/jack.h> |
26 | 26 | ||
27 | #include <plat/regs-iis.h> | 27 | #include "regs-iis.h" |
28 | #include <asm/mach-types.h> | 28 | #include <asm/mach-types.h> |
29 | 29 | ||
30 | #include "s3c24xx-i2s.h" | 30 | #include "s3c24xx-i2s.h" |
diff --git a/sound/soc/samsung/s3c24xx-i2s.c b/sound/soc/samsung/s3c24xx-i2s.c index 5403176b2aa3..8b3414551a62 100644 --- a/sound/soc/samsung/s3c24xx-i2s.c +++ b/sound/soc/samsung/s3c24xx-i2s.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <sound/pcm_params.h> | 24 | #include <sound/pcm_params.h> |
25 | 25 | ||
26 | #include <mach/dma.h> | 26 | #include <mach/dma.h> |
27 | #include <plat/regs-iis.h> | 27 | #include "regs-iis.h" |
28 | 28 | ||
29 | #include "dma.h" | 29 | #include "dma.h" |
30 | #include "s3c24xx-i2s.h" | 30 | #include "s3c24xx-i2s.h" |
diff --git a/sound/soc/samsung/s3c24xx_uda134x.c b/sound/soc/samsung/s3c24xx_uda134x.c index 333e1b7f06c7..1b7b52b0af97 100644 --- a/sound/soc/samsung/s3c24xx_uda134x.c +++ b/sound/soc/samsung/s3c24xx_uda134x.c | |||
@@ -18,7 +18,7 @@ | |||
18 | #include <sound/soc.h> | 18 | #include <sound/soc.h> |
19 | #include <sound/s3c24xx_uda134x.h> | 19 | #include <sound/s3c24xx_uda134x.h> |
20 | 20 | ||
21 | #include <plat/regs-iis.h> | 21 | #include "regs-iis.h" |
22 | 22 | ||
23 | #include "s3c24xx-i2s.h" | 23 | #include "s3c24xx-i2s.h" |
24 | 24 | ||