From: jassisinghbrar@gmail.com (Jassi Brar)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 06/17] ARM: S5P64X0: Segregate audio devices
Date: Fri, 17 Dec 2010 14:00:07 +0900 [thread overview]
Message-ID: <1292562007-19780-1-git-send-email-jassisinghbrar@gmail.com> (raw)
In-Reply-To: <1292561925-19586-1-git-send-email-jassisinghbrar@gmail.com>
From: Jassi Brar <jassi.brar@samsung.com>
Segregate I2S devices for S5P6440 and S5P6450.
Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com>
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
arch/arm/mach-s5p64x0/dev-audio.c | 123 ++++++++++++++++++++++++++---
arch/arm/plat-samsung/include/plat/devs.h | 2 +
2 files changed, 112 insertions(+), 13 deletions(-)
diff --git a/arch/arm/mach-s5p64x0/dev-audio.c b/arch/arm/mach-s5p64x0/dev-audio.c
index 14f89e7..35f1f22 100644
--- a/arch/arm/mach-s5p64x0/dev-audio.c
+++ b/arch/arm/mach-s5p64x0/dev-audio.c
@@ -24,13 +24,13 @@ static const char *rclksrc[] = {
[1] = "sclk_audio2",
};
-static int s5p64x0_cfg_i2s(struct platform_device *pdev)
+static int s5p6440_cfg_i2s(struct platform_device *pdev)
{
- /* configure GPIO for i2s port */
switch (pdev->id) {
case 0:
- s3c_gpio_cfgpin_range(S5P6440_GPR(4), 5, S3C_GPIO_SFN(5));
- s3c_gpio_cfgpin_range(S5P6440_GPR(13), 2, S3C_GPIO_SFN(5));
+ s3c_gpio_cfgpin_range(S5P6440_GPC(4), 2, S3C_GPIO_SFN(5));
+ s3c_gpio_cfgpin(S5P6440_GPC(7), S3C_GPIO_SFN(5));
+ s3c_gpio_cfgpin_range(S5P6440_GPH(6), 4, S3C_GPIO_SFN(5));
break;
default:
printk(KERN_ERR "Invalid Device %d\n", pdev->id);
@@ -40,8 +40,8 @@ static int s5p64x0_cfg_i2s(struct platform_device *pdev)
return 0;
}
-static struct s3c_audio_pdata s5p64x0_i2s_pdata = {
- .cfg_gpio = s5p64x0_cfg_i2s,
+static struct s3c_audio_pdata s5p6440_i2s_pdata = {
+ .cfg_gpio = s5p6440_cfg_i2s,
.type = {
.i2s = {
.quirks = QUIRK_PRI_6CHAN,
@@ -50,7 +50,7 @@ static struct s3c_audio_pdata s5p64x0_i2s_pdata = {
},
};
-static struct resource s5p64x0_iis0_resource[] = {
+static struct resource s5p64x0_i2s0_resource[] = {
[0] = {
.start = S5P64X0_PA_I2S,
.end = S5P64X0_PA_I2S + 0x100 - 1,
@@ -71,20 +71,117 @@ static struct resource s5p64x0_iis0_resource[] = {
struct platform_device s5p6440_device_iis = {
.name = "samsung-i2s",
.id = 0,
- .num_resources = ARRAY_SIZE(s5p64x0_iis0_resource),
- .resource = s5p64x0_iis0_resource,
+ .num_resources = ARRAY_SIZE(s5p64x0_i2s0_resource),
+ .resource = s5p64x0_i2s0_resource,
.dev = {
- .platform_data = &s5p64x0_i2s_pdata,
+ .platform_data = &s5p6440_i2s_pdata,
+ },
+};
+
+static int s5p6450_cfg_i2s(struct platform_device *pdev)
+{
+ switch (pdev->id) {
+ case 0:
+ s3c_gpio_cfgpin_range(S5P6450_GPR(4), 5, S3C_GPIO_SFN(5));
+ s3c_gpio_cfgpin_range(S5P6450_GPR(13), 2, S3C_GPIO_SFN(5));
+ break;
+ case 1:
+ s3c_gpio_cfgpin(S5P6440_GPB(4), S3C_GPIO_SFN(5));
+ s3c_gpio_cfgpin_range(S5P6450_GPC(0), 4, S3C_GPIO_SFN(5));
+ break;
+ case 2:
+ s3c_gpio_cfgpin_range(S5P6450_GPK(0), 5, S3C_GPIO_SFN(5));
+ break;
+ default:
+ printk(KERN_ERR "Invalid Device %d\n", pdev->id);
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static struct s3c_audio_pdata s5p6450_i2s0_pdata = {
+ .cfg_gpio = s5p6450_cfg_i2s,
+ .type = {
+ .i2s = {
+ .quirks = QUIRK_PRI_6CHAN,
+ .src_clk = rclksrc,
+ },
},
};
struct platform_device s5p6450_device_iis0 = {
.name = "samsung-i2s",
.id = 0,
- .num_resources = ARRAY_SIZE(s5p64x0_iis0_resource),
- .resource = s5p64x0_iis0_resource,
+ .num_resources = ARRAY_SIZE(s5p64x0_i2s0_resource),
+ .resource = s5p64x0_i2s0_resource,
+ .dev = {
+ .platform_data = &s5p6450_i2s0_pdata,
+ },
+};
+
+static struct s3c_audio_pdata s5p6450_i2s_pdata = {
+ .cfg_gpio = s5p6450_cfg_i2s,
+ .type = {
+ .i2s = {
+ .src_clk = rclksrc,
+ },
+ },
+};
+
+static struct resource s5p6450_i2s1_resource[] = {
+ [0] = {
+ .start = S5P6450_PA_I2S1,
+ .end = S5P6450_PA_I2S1 + 0x100 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = DMACH_I2S1_TX,
+ .end = DMACH_I2S1_TX,
+ .flags = IORESOURCE_DMA,
+ },
+ [2] = {
+ .start = DMACH_I2S1_RX,
+ .end = DMACH_I2S1_RX,
+ .flags = IORESOURCE_DMA,
+ },
+};
+
+struct platform_device s5p6450_device_iis1 = {
+ .name = "samsung-i2s",
+ .id = 1,
+ .num_resources = ARRAY_SIZE(s5p6450_i2s1_resource),
+ .resource = s5p6450_i2s1_resource,
+ .dev = {
+ .platform_data = &s5p6450_i2s_pdata,
+ },
+};
+
+static struct resource s5p6450_i2s2_resource[] = {
+ [0] = {
+ .start = S5P6450_PA_I2S2,
+ .end = S5P6450_PA_I2S2 + 0x100 - 1,
+ .flags = IORESOURCE_MEM,
+ },
+ [1] = {
+ .start = DMACH_I2S2_TX,
+ .end = DMACH_I2S2_TX,
+ .flags = IORESOURCE_DMA,
+ },
+ [2] = {
+ .start = DMACH_I2S2_RX,
+ .end = DMACH_I2S2_RX,
+ .flags = IORESOURCE_DMA,
+ },
+};
+
+struct platform_device s5p6450_device_iis2 = {
+ .name = "samsung-i2s",
+ .id = 2,
+ .num_resources = ARRAY_SIZE(s5p6450_i2s2_resource),
+ .resource = s5p6450_i2s2_resource,
.dev = {
- .platform_data = &s5p64x0_i2s_pdata,
+ .platform_data = &s5p6450_i2s_pdata,
},
};
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h
index e9e3b6e..ec23691 100644
--- a/arch/arm/plat-samsung/include/plat/devs.h
+++ b/arch/arm/plat-samsung/include/plat/devs.h
@@ -115,6 +115,8 @@ extern struct platform_device s5p6440_device_pcm;
extern struct platform_device s5p6440_device_iis;
extern struct platform_device s5p6450_device_iis0;
+extern struct platform_device s5p6450_device_iis1;
+extern struct platform_device s5p6450_device_iis2;
extern struct platform_device s5p6450_device_pcm0;
extern struct platform_device s5pc100_device_ac97;
--
1.6.2.5
next prev parent reply other threads:[~2010-12-17 5:00 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-17 4:58 [PATCH 00/17] Samsung: Enable Audio Devices Jassi Brar
2010-12-17 5:00 ` [PATCH 01/17] ARM: S5P6442: Implement i2c-gpio config Jassi Brar
2010-12-17 5:00 ` [PATCH 02/17] ARM: SMDK6442: Enable I2C0 device on board Jassi Brar
2010-12-17 5:00 ` [PATCH 03/17] ARM: SMDK6442: Enable I2S device to work Jassi Brar
2010-12-17 5:00 ` [PATCH 04/17] ARM: S5P6450: Define clocks for I2S Jassi Brar
2010-12-21 0:55 ` Kukjin Kim
2010-12-21 1:43 ` Jassi Brar
2010-12-17 5:00 ` [PATCH 05/17] ARM: S5P6450: Define base addresses " Jassi Brar
2010-12-17 5:00 ` Jassi Brar [this message]
2010-12-21 0:39 ` [PATCH 06/17] ARM: S5P64X0: Segregate audio devices Kukjin Kim
2010-12-21 1:41 ` Jassi Brar
2010-12-17 5:00 ` [PATCH 07/17] ARM: SMDK6440: Enable I2S device to work Jassi Brar
2010-12-17 5:00 ` [PATCH 08/17] ARM: SMDK6450: " Jassi Brar
2010-12-17 5:00 ` [PATCH 09/17] ARM: SMDKC110: " Jassi Brar
2010-12-17 5:00 ` [PATCH 10/17] ARM: SMDKV210: " Jassi Brar
2010-12-17 5:00 ` [PATCH 11/17] ARM: SMDKV310: Enable I2C1 device Jassi Brar
2010-12-17 5:00 ` [PATCH 13/17] ARM: S5PV310: Add AC97 clocks Jassi Brar
2010-12-17 5:00 ` [PATCH 12/17] ARM: S5PV310: Add PDMA clocks Jassi Brar
2010-12-17 5:00 ` [PATCH 14/17] ARM: S5PV310: Define I2S clocks Jassi Brar
2010-12-17 5:44 ` Kyungmin Park
2010-12-17 5:51 ` Jassi Brar
2010-12-17 6:02 ` Kyungmin Park
2010-12-17 6:14 ` Jassi Brar
2010-12-17 5:00 ` [PATCH 15/17] ARM: S5PV310: Add AC97 support for SMDK Jassi Brar
2010-12-17 5:00 ` [PATCH 16/17] ARM: SMDKV310: Enable I2S device Jassi Brar
2010-12-17 5:00 ` [PATCH 17/17] ARM: SMDKC210: " Jassi Brar
2010-12-17 11:55 ` [PATCH 00/17] Samsung: Enable Audio Devices Mark Brown
2010-12-20 22:27 ` Kukjin Kim
2010-12-20 23:35 ` Mark Brown
2010-12-21 1:26 ` Kukjin Kim
2010-12-21 2:52 ` Jassi Brar
2010-12-22 4:39 ` Kukjin Kim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1292562007-19780-1-git-send-email-jassisinghbrar@gmail.com \
--to=jassisinghbrar@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).