* [PATCH 3/7] ARM: S3C64XX: Add I2S resources in platform code
@ 2009-12-09 4:32 jassisinghbrar at gmail.com
2009-12-09 10:47 ` Mark Brown
0 siblings, 1 reply; 4+ messages in thread
From: jassisinghbrar at gmail.com @ 2009-12-09 4:32 UTC (permalink / raw)
To: linux-arm-kernel
From: Jassi Brar <jassi.brar@samsung.com>
Define resources needed by the I2S drivers in platform code.
Audio cfg_gpio callback and IORESOURCE_DMA are added.
Signed-off-by: Jassi Brar <jassi.brar@samsung.com>
---
arch/arm/plat-s3c64xx/dev-audio.c | 91 ++++++++++++++++++++++++++++++++++++-
1 files changed, 90 insertions(+), 1 deletions(-)
diff --git a/arch/arm/plat-s3c64xx/dev-audio.c b/arch/arm/plat-s3c64xx/dev-audio.c
index a21a88f..cdba3a7 100644
--- a/arch/arm/plat-s3c64xx/dev-audio.c
+++ b/arch/arm/plat-s3c64xx/dev-audio.c
@@ -3,7 +3,6 @@
* Copyright 2009 Wolfson Microelectronics
* Mark Brown <broonie@opensource.wolfsonmicro.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.
@@ -20,16 +19,69 @@
#include <plat/devs.h>
#include <plat/audio.h>
+#include <plat/gpio-bank-c.h>
#include <plat/gpio-bank-d.h>
#include <plat/gpio-bank-e.h>
+#include <plat/gpio-bank-h.h>
#include <plat/gpio-cfg.h>
+static int s3c64xx_i2sv3_cfg_gpio(struct platform_device *pdev)
+{
+ switch (pdev->id) {
+ case 0:
+ s3c_gpio_cfgpin(S3C64XX_GPD(0), S3C64XX_GPD0_I2S0_CLK);
+ s3c_gpio_cfgpin(S3C64XX_GPD(1), S3C64XX_GPD1_I2S0_CDCLK);
+ s3c_gpio_cfgpin(S3C64XX_GPD(2), S3C64XX_GPD2_I2S0_LRCLK);
+ s3c_gpio_cfgpin(S3C64XX_GPD(3), S3C64XX_GPD3_I2S0_DI);
+ s3c_gpio_cfgpin(S3C64XX_GPD(4), S3C64XX_GPD4_I2S0_D0);
+ break;
+ case 1:
+ s3c_gpio_cfgpin(S3C64XX_GPE(0), S3C64XX_GPE0_I2S1_CLK);
+ s3c_gpio_cfgpin(S3C64XX_GPE(1), S3C64XX_GPE1_I2S1_CDCLK);
+ s3c_gpio_cfgpin(S3C64XX_GPE(2), S3C64XX_GPE2_I2S1_LRCLK);
+ s3c_gpio_cfgpin(S3C64XX_GPE(3), S3C64XX_GPE3_I2S1_DI);
+ s3c_gpio_cfgpin(S3C64XX_GPE(4), S3C64XX_GPE4_I2S1_D0);
+ default:
+ printk(KERN_DEBUG "Invalid I2S Controller number!");
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
+static int s3c64xx_i2sv4_cfg_gpio(struct platform_device *pdev)
+{
+ s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C64XX_GPC4_I2S0_V40_DO);
+ s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C64XX_GPC5_I2S1_V40_DO);
+ s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C64XX_GPC7_I2S2_V40_DO);
+ s3c_gpio_cfgpin(S3C64XX_GPH(6), S3C64XX_GPH6_I2S_V40_BCLK);
+ s3c_gpio_cfgpin(S3C64XX_GPH(7), S3C64XX_GPH7_I2S_V40_CDCLK);
+ s3c_gpio_cfgpin(S3C64XX_GPH(8), S3C64XX_GPH8_I2S_V40_LRCLK);
+ s3c_gpio_cfgpin(S3C64XX_GPH(9), S3C64XX_GPH9_I2S_V40_DI);
+
+ return 0;
+}
+
static struct resource s3c64xx_iis0_resource[] = {
[0] = {
.start = S3C64XX_PA_IIS0,
.end = S3C64XX_PA_IIS0 + 0x100 - 1,
.flags = IORESOURCE_MEM,
},
+ [1] = {
+ .start = DMACH_I2S0_OUT,
+ .end = DMACH_I2S0_OUT,
+ .flags = IORESOURCE_DMA,
+ },
+ [2] = {
+ .start = DMACH_I2S0_IN,
+ .end = DMACH_I2S0_IN,
+ .flags = IORESOURCE_DMA,
+ },
+};
+
+struct s3c_audio_pdata s3c_i2s0_pdata = {
+ .cfg_gpio = s3c64xx_i2sv3_cfg_gpio,
};
struct platform_device s3c64xx_device_iis0 = {
@@ -37,6 +89,9 @@ struct platform_device s3c64xx_device_iis0 = {
.id = 0,
.num_resources = ARRAY_SIZE(s3c64xx_iis0_resource),
.resource = s3c64xx_iis0_resource,
+ .dev = {
+ .platform_data = &s3c_i2s0_pdata,
+ },
};
EXPORT_SYMBOL(s3c64xx_device_iis0);
@@ -46,6 +101,20 @@ static struct resource s3c64xx_iis1_resource[] = {
.end = S3C64XX_PA_IIS1 + 0x100 - 1,
.flags = IORESOURCE_MEM,
},
+ [1] = {
+ .start = DMACH_I2S1_OUT,
+ .end = DMACH_I2S1_OUT,
+ .flags = IORESOURCE_DMA,
+ },
+ [2] = {
+ .start = DMACH_I2S1_IN,
+ .end = DMACH_I2S1_IN,
+ .flags = IORESOURCE_DMA,
+ },
+};
+
+struct s3c_audio_pdata s3c_i2s1_pdata = {
+ .cfg_gpio = s3c64xx_i2sv3_cfg_gpio,
};
struct platform_device s3c64xx_device_iis1 = {
@@ -53,6 +122,9 @@ struct platform_device s3c64xx_device_iis1 = {
.id = 1,
.num_resources = ARRAY_SIZE(s3c64xx_iis1_resource),
.resource = s3c64xx_iis1_resource,
+ .dev = {
+ .platform_data = &s3c_i2s1_pdata,
+ },
};
EXPORT_SYMBOL(s3c64xx_device_iis1);
@@ -62,6 +134,20 @@ static struct resource s3c64xx_iisv4_resource[] = {
.end = S3C64XX_PA_IISV4 + 0x100 - 1,
.flags = IORESOURCE_MEM,
},
+ [1] = {
+ .start = DMACH_HSI_I2SV40_TX,
+ .end = DMACH_HSI_I2SV40_TX,
+ .flags = IORESOURCE_DMA,
+ },
+ [2] = {
+ .start = DMACH_HSI_I2SV40_RX,
+ .end = DMACH_HSI_I2SV40_RX,
+ .flags = IORESOURCE_DMA,
+ },
+};
+
+struct s3c_audio_pdata s3c_i2sv4_pdata = {
+ .cfg_gpio = s3c64xx_i2sv4_cfg_gpio,
};
struct platform_device s3c64xx_device_iisv4 = {
@@ -69,6 +155,9 @@ struct platform_device s3c64xx_device_iisv4 = {
.id = -1,
.num_resources = ARRAY_SIZE(s3c64xx_iisv4_resource),
.resource = s3c64xx_iisv4_resource,
+ .dev = {
+ .platform_data = &s3c_i2sv4_pdata,
+ },
};
EXPORT_SYMBOL(s3c64xx_device_iisv4);
--
1.6.2.5
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH 3/7] ARM: S3C64XX: Add I2S resources in platform code
2009-12-09 4:32 [PATCH 3/7] ARM: S3C64XX: Add I2S resources in platform code jassisinghbrar at gmail.com
@ 2009-12-09 10:47 ` Mark Brown
2009-12-13 9:17 ` jassi brar
0 siblings, 1 reply; 4+ messages in thread
From: Mark Brown @ 2009-12-09 10:47 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Dec 09, 2009 at 01:32:03PM +0900, jassisinghbrar at gmail.com wrote:
> +static int s3c64xx_i2sv4_cfg_gpio(struct platform_device *pdev)
> +{
> + s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C64XX_GPC4_I2S0_V40_DO);
> + s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C64XX_GPC5_I2S1_V40_DO);
> + s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C64XX_GPC7_I2S2_V40_DO);
A variant of this should already have been merged, and the names of the
GPIO defines were altered to make it look less like there's multiple
controllers rather than multiple data lines.
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 3/7] ARM: S3C64XX: Add I2S resources in platform code
2009-12-09 10:47 ` Mark Brown
@ 2009-12-13 9:17 ` jassi brar
2009-12-13 11:33 ` Mark Brown
0 siblings, 1 reply; 4+ messages in thread
From: jassi brar @ 2009-12-13 9:17 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Dec 9, 2009 at 7:47 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Wed, Dec 09, 2009 at 01:32:03PM +0900, jassisinghbrar at gmail.com wrote:
>
>> +static int s3c64xx_i2sv4_cfg_gpio(struct platform_device *pdev)
>> +{
>> + ? ? s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C64XX_GPC4_I2S0_V40_DO);
>> + ? ? s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C64XX_GPC5_I2S1_V40_DO);
>> + ? ? s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C64XX_GPC7_I2S2_V40_DO);
>
> A variant of this should already have been merged, and the names of the
> GPIO defines were altered to make it look less like there's multiple
> controllers rather than multiple data lines.
I can see I2S_V4 MACRO renaming but nothing else that this patch does.
So, i shud resubmit with only new v4-DO MACROs, right?
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH 3/7] ARM: S3C64XX: Add I2S resources in platform code
2009-12-13 9:17 ` jassi brar
@ 2009-12-13 11:33 ` Mark Brown
0 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2009-12-13 11:33 UTC (permalink / raw)
To: linux-arm-kernel
On 13 Dec 2009, at 09:17, jassi brar <jassisinghbrar@gmail.com> wrote:
> On Wed, Dec 9, 2009 at 7:47 PM, Mark Brown
> <broonie@opensource.wolfsonmicro.com> wrote:
>> On Wed, Dec 09, 2009 at 01:32:03PM +0900, jassisinghbrar at gmail.com
>> wrote:
>>
>>> +static int s3c64xx_i2sv4_cfg_gpio(struct platform_device *pdev)
>>> +{
>>> + s3c_gpio_cfgpin(S3C64XX_GPC(4), S3C64XX_GPC4_I2S0_V40_DO);
>>> + s3c_gpio_cfgpin(S3C64XX_GPC(5), S3C64XX_GPC5_I2S1_V40_DO);
>>> + s3c_gpio_cfgpin(S3C64XX_GPC(7), S3C64XX_GPC7_I2S2_V40_DO);
>>
>> A variant of this should already have been merged, and the names of
>> the
>> GPIO defines were altered to make it look less like there's multiple
>> controllers rather than multiple data lines.
> I can see I2S_V4 MACRO renaming but nothing else that this patch does.
> So, i shud resubmit with only new v4-DO MACROs, right?
I'd wait until after -rc1 is out but yes. We'll also need to recheck
against Ben's reworked clock code.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2009-12-13 11:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-12-09 4:32 [PATCH 3/7] ARM: S3C64XX: Add I2S resources in platform code jassisinghbrar at gmail.com
2009-12-09 10:47 ` Mark Brown
2009-12-13 9:17 ` jassi brar
2009-12-13 11:33 ` Mark Brown
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).