diff options
author | Takashi Iwai <tiwai@suse.de> | 2011-01-13 02:37:24 -0500 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2011-01-13 02:37:24 -0500 |
commit | 6db9a0f326d3144d790d9479309df480a8f562e4 (patch) | |
tree | 650a8950c35c087278ecee1b8d123f75f601ebc8 /arch/arm/plat-samsung | |
parent | c400c9e23feb5bb3fbe8a8d4581ecce3b19a2f38 (diff) | |
parent | 18b022eb117e7f70c191267551ff865f278a9258 (diff) |
Merge branch 'topic/asoc' into for-linus
Diffstat (limited to 'arch/arm/plat-samsung')
-rw-r--r-- | arch/arm/plat-samsung/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/plat-samsung/dev-asocdma.c | 25 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/audio.h | 24 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/devs.h | 11 |
4 files changed, 60 insertions, 1 deletions
diff --git a/arch/arm/plat-samsung/Makefile b/arch/arm/plat-samsung/Makefile index afcce474af8e..19d8a16c3066 100644 --- a/arch/arm/plat-samsung/Makefile +++ b/arch/arm/plat-samsung/Makefile | |||
@@ -17,6 +17,7 @@ obj-y += clock.o | |||
17 | obj-y += pwm-clock.o | 17 | obj-y += pwm-clock.o |
18 | obj-y += gpio.o | 18 | obj-y += gpio.o |
19 | obj-y += gpio-config.o | 19 | obj-y += gpio-config.o |
20 | obj-y += dev-asocdma.o | ||
20 | 21 | ||
21 | obj-$(CONFIG_SAMSUNG_GPIOLIB_4BIT) += gpiolib.o | 22 | obj-$(CONFIG_SAMSUNG_GPIOLIB_4BIT) += gpiolib.o |
22 | obj-$(CONFIG_SAMSUNG_CLKSRC) += clock-clksrc.o | 23 | obj-$(CONFIG_SAMSUNG_CLKSRC) += clock-clksrc.o |
diff --git a/arch/arm/plat-samsung/dev-asocdma.c b/arch/arm/plat-samsung/dev-asocdma.c new file mode 100644 index 000000000000..a068c4f42d56 --- /dev/null +++ b/arch/arm/plat-samsung/dev-asocdma.c | |||
@@ -0,0 +1,25 @@ | |||
1 | /* linux/arch/arm/plat-samsung/dev-asocdma.c | ||
2 | * | ||
3 | * Copyright (c) 2010 Samsung Electronics Co. Ltd | ||
4 | * Jaswinder Singh <jassi.brar@samsung.com> | ||
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 | |||
11 | #include <linux/platform_device.h> | ||
12 | #include <linux/dma-mapping.h> | ||
13 | #include <plat/devs.h> | ||
14 | |||
15 | static u64 audio_dmamask = DMA_BIT_MASK(32); | ||
16 | |||
17 | struct platform_device samsung_asoc_dma = { | ||
18 | .name = "samsung-audio", | ||
19 | .id = -1, | ||
20 | .dev = { | ||
21 | .dma_mask = &audio_dmamask, | ||
22 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
23 | } | ||
24 | }; | ||
25 | EXPORT_SYMBOL(samsung_asoc_dma); | ||
diff --git a/arch/arm/plat-samsung/include/plat/audio.h b/arch/arm/plat-samsung/include/plat/audio.h index 7712ff6336f4..a0826ed2f9fe 100644 --- a/arch/arm/plat-samsung/include/plat/audio.h +++ b/arch/arm/plat-samsung/include/plat/audio.h | |||
@@ -25,10 +25,34 @@ extern void s3c64xx_ac97_setup_gpio(int); | |||
25 | #define S5PC100_SPDIF_GPG3 1 | 25 | #define S5PC100_SPDIF_GPG3 1 |
26 | extern void s5pc100_spdif_setup_gpio(int); | 26 | extern void s5pc100_spdif_setup_gpio(int); |
27 | 27 | ||
28 | struct samsung_i2s { | ||
29 | /* If the Primary DAI has 5.1 Channels */ | ||
30 | #define QUIRK_PRI_6CHAN (1 << 0) | ||
31 | /* If the I2S block has a Stereo Overlay Channel */ | ||
32 | #define QUIRK_SEC_DAI (1 << 1) | ||
33 | /* | ||
34 | * If the I2S block has no internal prescalar or MUX (I2SMOD[10] bit) | ||
35 | * The Machine driver must provide suitably set clock to the I2S block. | ||
36 | */ | ||
37 | #define QUIRK_NO_MUXPSR (1 << 2) | ||
38 | #define QUIRK_NEED_RSTCLR (1 << 3) | ||
39 | /* Quirks of the I2S controller */ | ||
40 | u32 quirks; | ||
41 | |||
42 | /* | ||
43 | * Array of clock names that can be used to generate I2S signals. | ||
44 | * Also corresponds to clocks of I2SMOD[10] | ||
45 | */ | ||
46 | const char **src_clk; | ||
47 | }; | ||
48 | |||
28 | /** | 49 | /** |
29 | * struct s3c_audio_pdata - common platform data for audio device drivers | 50 | * struct s3c_audio_pdata - common platform data for audio device drivers |
30 | * @cfg_gpio: Callback function to setup mux'ed pins in I2S/PCM/AC97 mode | 51 | * @cfg_gpio: Callback function to setup mux'ed pins in I2S/PCM/AC97 mode |
31 | */ | 52 | */ |
32 | struct s3c_audio_pdata { | 53 | struct s3c_audio_pdata { |
33 | int (*cfg_gpio)(struct platform_device *); | 54 | int (*cfg_gpio)(struct platform_device *); |
55 | union { | ||
56 | struct samsung_i2s i2s; | ||
57 | } type; | ||
34 | }; | 58 | }; |
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h index 2d82a6cb1444..e9e3b6e3ec74 100644 --- a/arch/arm/plat-samsung/include/plat/devs.h +++ b/arch/arm/plat-samsung/include/plat/devs.h | |||
@@ -32,7 +32,7 @@ extern struct platform_device s3c64xx_device_iisv4; | |||
32 | extern struct platform_device s3c64xx_device_spi0; | 32 | extern struct platform_device s3c64xx_device_spi0; |
33 | extern struct platform_device s3c64xx_device_spi1; | 33 | extern struct platform_device s3c64xx_device_spi1; |
34 | 34 | ||
35 | extern struct platform_device s3c_device_pcm; | 35 | extern struct platform_device samsung_asoc_dma; |
36 | 36 | ||
37 | extern struct platform_device s3c64xx_device_pcm0; | 37 | extern struct platform_device s3c64xx_device_pcm0; |
38 | extern struct platform_device s3c64xx_device_pcm1; | 38 | extern struct platform_device s3c64xx_device_pcm1; |
@@ -96,6 +96,15 @@ extern struct platform_device s5pv210_device_iis1; | |||
96 | extern struct platform_device s5pv210_device_iis2; | 96 | extern struct platform_device s5pv210_device_iis2; |
97 | extern struct platform_device s5pv210_device_spdif; | 97 | extern struct platform_device s5pv210_device_spdif; |
98 | 98 | ||
99 | extern struct platform_device s5pv310_device_ac97; | ||
100 | extern struct platform_device s5pv310_device_pcm0; | ||
101 | extern struct platform_device s5pv310_device_pcm1; | ||
102 | extern struct platform_device s5pv310_device_pcm2; | ||
103 | extern struct platform_device s5pv310_device_i2s0; | ||
104 | extern struct platform_device s5pv310_device_i2s1; | ||
105 | extern struct platform_device s5pv310_device_i2s2; | ||
106 | extern struct platform_device s5pv310_device_spdif; | ||
107 | |||
99 | extern struct platform_device s5p6442_device_pcm0; | 108 | extern struct platform_device s5p6442_device_pcm0; |
100 | extern struct platform_device s5p6442_device_pcm1; | 109 | extern struct platform_device s5p6442_device_pcm1; |
101 | extern struct platform_device s5p6442_device_iis0; | 110 | extern struct platform_device s5p6442_device_iis0; |