Skip to content

Commit

Permalink
ARM: SAMSUNG: Add platform device for idma
Browse files Browse the repository at this point in the history
Exynos4 and S5PC110(S5PV210) has Internal dma(idma) in AUDSS.
To support idma, register idma platform device.
and Exynos4 and S5PC110 has different IDMA address.
TO handle different IDMA address, register idma platform data

Signed-off-by: Sangbeom Kim <sbkim73@samsung.com>
Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
  • Loading branch information
Sangbeom Kim authored and Kukjin Kim committed Jul 21, 2011
1 parent b93cb91 commit 2839cc1
Show file tree
Hide file tree
Showing 9 changed files with 53 additions and 0 deletions.
2 changes: 2 additions & 0 deletions arch/arm/mach-exynos4/dev-audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#include <mach/map.h>
#include <mach/dma.h>
#include <mach/irqs.h>
#include <mach/regs-audss.h>

static const char *rclksrc[] = {
[0] = "busclk",
Expand Down Expand Up @@ -55,6 +56,7 @@ static struct s3c_audio_pdata i2sv5_pdata = {
.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
| QUIRK_NEED_RSTCLR,
.src_clk = rclksrc,
.idma_addr = EXYNOS4_AUDSS_INT_MEM,
},
},
};
Expand Down
18 changes: 18 additions & 0 deletions arch/arm/mach-exynos4/include/mach/regs-audss.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* arch/arm/mach-exynos4/include/mach/regs-audss.h
*
* Copyright (c) 2011 Samsung Electronics
* http://www.samsung.com
*
* Exynos4 Audio SubSystem clock register definitions
*
* 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 __PLAT_REGS_AUDSS_H
#define __PLAT_REGS_AUDSS_H __FILE__

#define EXYNOS4_AUDSS_INT_MEM (0x03000000)

#endif /* _PLAT_REGS_AUDSS_H */
1 change: 1 addition & 0 deletions arch/arm/mach-exynos4/mach-smdkv310.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ static struct platform_device *smdkv310_devices[] __initdata = {
&exynos4_device_spdif,
&exynos4_device_sysmmu,
&samsung_asoc_dma,
&samsung_asoc_idma,
&smdkv310_smsc911x,
&exynos4_device_ahci,
};
Expand Down
1 change: 1 addition & 0 deletions arch/arm/mach-s5pv210/dev-audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ static struct s3c_audio_pdata i2sv5_pdata = {
.quirks = QUIRK_PRI_6CHAN | QUIRK_SEC_DAI
| QUIRK_NEED_RSTCLR,
.src_clk = rclksrc,
.idma_addr = S5PV210_AUDSS_INT_MEM,
},
},
};
Expand Down
18 changes: 18 additions & 0 deletions arch/arm/mach-s5pv210/include/mach/regs-audss.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/* arch/arm/mach-s5pv210/include/mach/regs-audss.h
*
* Copyright (c) 2011 Samsung Electronics
* http://www.samsung.com
*
* S5PV210 Audio SubSystem clock register definitions
*
* 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 __PLAT_REGS_AUDSS_H
#define __PLAT_REGS_AUDSS_H __FILE__

#define S5PV210_AUDSS_INT_MEM (0xC0000000)

#endif /* _PLAT_REGS_AUDSS_H */
1 change: 1 addition & 0 deletions arch/arm/mach-s5pv210/mach-smdkv210.c
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@ static struct platform_device *smdkv210_devices[] __initdata = {
&s5pv210_device_iis0,
&s5pv210_device_spdif,
&samsung_asoc_dma,
&samsung_asoc_idma,
&samsung_device_keypad,
&smdkv210_dm9000,
&smdkv210_lcd_lte480wv,
Expand Down
10 changes: 10 additions & 0 deletions arch/arm/plat-samsung/dev-asocdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,13 @@ struct platform_device samsung_asoc_dma = {
}
};
EXPORT_SYMBOL(samsung_asoc_dma);

struct platform_device samsung_asoc_idma = {
.name = "samsung-idma",
.id = -1,
.dev = {
.dma_mask = &audio_dmamask,
.coherent_dma_mask = DMA_BIT_MASK(32),
}
};
EXPORT_SYMBOL(samsung_asoc_idma);
1 change: 1 addition & 0 deletions arch/arm/plat-samsung/include/plat/audio.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ struct samsung_i2s {
* Also corresponds to clocks of I2SMOD[10]
*/
const char **src_clk;
dma_addr_t idma_addr;
};

/**
Expand Down
1 change: 1 addition & 0 deletions arch/arm/plat-samsung/include/plat/devs.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ extern struct platform_device s3c64xx_device_spi0;
extern struct platform_device s3c64xx_device_spi1;

extern struct platform_device samsung_asoc_dma;
extern struct platform_device samsung_asoc_idma;

extern struct platform_device s3c64xx_device_pcm0;
extern struct platform_device s3c64xx_device_pcm1;
Expand Down

0 comments on commit 2839cc1

Please sign in to comment.