S3C24XX: Enable DMA on S3C2416 by sharing S3C2443-DMA
Subsystems (3)
cover S3C24XX: Enable DMA on S3C2416 by sharing S3C2443-DMA
The S3C2416/2450 contains the same DMA register layout as the S3C2443. Therefore it can simply share this dma selection definition.
As we use the S3C2443_DMA the S3C2416_DMA is no longer necessary. The third patch removes this remnant of the S3C24XX merge.
The whole series was made on top of the recent S3C24XX merge.
Heiko Stuebner (3):
ARM: S3C24XX: Fix indentation of dma-s3c2443
ARM: S3C24XX: Reuse S3C2443 dma for S3C2416
ARM: S3C24XX: remove obsolete S3C2416_DMA option
arch/arm/Kconfig | 1 - arch/arm/mach-s3c2416/Kconfig | 14 ----------- arch/arm/mach-s3c2416/Makefile | 12 ---------- arch/arm/mach-s3c24xx/Kconfig | 10 ++++---- arch/arm/mach-s3c24xx/Makefile | 2 +- arch/arm/mach-s3c24xx/dma-s3c2443.c | 30 ++++++++++++++++++++----- arch/arm/plat-samsung/include/plat/regs-dma.h | 2 +- 7 files changed, 31 insertions(+), 40 deletions(-) delete mode 100644 arch/arm/mach-s3c2416/Kconfig delete mode 100644 arch/arm/mach-s3c2416/Makefile
Signature · 1 line
1.7.2.3
PATCH 1/3 ARM: S3C24XX: Fix indentation of dma-s3c2443
Spaces seem to have slipped in at some point in the past.
--- arch/arm/mach-s3c24xx/dma-s3c2443.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
arch/arm/mach-s3c24xx/dma-s3c2443.c +4 -4
@@ -71,11 +71,11 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = { .name = "uart1", .channels = MAP(S3C2443_DMAREQSEL_UART1_0), }, - [DMACH_UART2] = { + [DMACH_UART2] = { .name = "uart2", .channels = MAP(S3C2443_DMAREQSEL_UART2_0), }, - [DMACH_UART3] = { + [DMACH_UART3] = { .name = "uart3", .channels = MAP(S3C2443_DMAREQSEL_UART3_0), },
@@ -87,11 +87,11 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = { .name = "uart1", .channels = MAP(S3C2443_DMAREQSEL_UART1_1), }, - [DMACH_UART2_SRC2] = { + [DMACH_UART2_SRC2] = { .name = "uart2", .channels = MAP(S3C2443_DMAREQSEL_UART2_1), }, - [DMACH_UART3_SRC2] = { + [DMACH_UART3_SRC2] = { .name = "uart3", .channels = MAP(S3C2443_DMAREQSEL_UART3_1), },
Signature · 1 line
1.7.2.3
PATCH 2/3 ARM: S3C24XX: Reuse S3C2443 dma for S3C2416
In reply to Heiko StübnerThe dma controller is similar in S3C2443 and S3C2416 and has also the same register layout with the same REQSEL-bits in the source select.
The only small difference is the SIO channel of the S3C2443 for the non-hsmmc controller which is not present on S3C2416/2450 and second spi channel which is not present on the S3C2416.
--- arch/arm/mach-s3c24xx/Kconfig | 10 +++++----- arch/arm/mach-s3c24xx/Makefile | 2 +- arch/arm/mach-s3c24xx/dma-s3c2443.c | 22 ++++++++++++++++++++-- arch/arm/plat-samsung/include/plat/regs-dma.h | 2 +- 4 files changed, 27 insertions(+), 9 deletions(-)
arch/arm/mach-s3c24xx/Kconfig +5 -5
@@ -42,7 +42,7 @@ config CPU_S3C2416 select CPU_LLSERIAL_S3C2440 select SAMSUNG_CLKSRC select S3C2443_COMMON - select S3C2416_DMA if S3C24XX_DMA + select S3C2443_DMA if S3C24XX_DMA select S3C2416_PM if PM help Support for the S3C2416 SoC from the S3C24XX line
@@ -479,15 +479,15 @@ config S3C2443_COMMON Common code for the S3C2443 and similar processors, which includes the S3C2416 and S3C2450. -endif # CPU_S3C2443 || CPU_S3C2416 - -if CPU_S3C2443 - config S3C2443_DMA bool help Internal config node for S3C2443 DMA support +endif # CPU_S3C2443 || CPU_S3C2416 + +if CPU_S3C2443 + comment "S3C2443 Boards" config MACH_SMDK2443
arch/arm/mach-s3c24xx/Makefile +1 -1
@@ -32,11 +32,11 @@ obj-$(CONFIG_CPU_S3C244X) += s3c244x.o irq-s3c244x.o clock-s3c244x.o obj-$(CONFIG_S3C2440_DMA) += dma-s3c2440.o obj-$(CONFIG_CPU_S3C2443) += s3c2443.o irq-s3c2443.o clock-s3c2443.o -obj-$(CONFIG_S3C2443_DMA) += dma-s3c2443.o # common code obj-$(CONFIG_S3C2443_COMMON) += common-s3c2443.o +obj-$(CONFIG_S3C2443_DMA) += dma-s3c2443.o # # machine support
arch/arm/mach-s3c24xx/dma-s3c2443.c +20 -2
@@ -51,7 +51,7 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = { .name = "xdreq1", .channels = MAP(S3C2443_DMAREQSEL_XDREQ1), }, - [DMACH_SDI] = { + [DMACH_SDI] = { /* only on S3C2443 */ .name = "sdi", .channels = MAP(S3C2443_DMAREQSEL_SDI), },
@@ -59,7 +59,7 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = { .name = "spi0", .channels = MAP(S3C2443_DMAREQSEL_SPI0TX), }, - [DMACH_SPI1] = { + [DMACH_SPI1] = { /* only on S3C2443/S3C2450 */ .name = "spi1", .channels = MAP(S3C2443_DMAREQSEL_SPI1TX), },
@@ -142,6 +142,23 @@ static int __init s3c2443_dma_add(struct device *dev,return s3c24xx_dma_init_map (&s3c2443_dma_sel); } +#ifdef CONFIG_CPU_S3C2416 +/* S3C2416 DMA contains the same selection table as the S3C2443 */ +static struct subsys_interface s3c2416_dma_interface = { + .name ="s3c2416_dma" , + .subsys = &s3c2416_subsys, + .add_dev = s3c2443_dma_add, +}; + +static int __init s3c2416_dma_init (void ) +{ +return subsys_interface_register (&s3c2416_dma_interface); +} + +arch_initcall (s3c2416_dma_init); +#endif + +#ifdef CONFIG_CPU_S3C2443 static struct subsys_interface s3c2443_dma_interface = { .name ="s3c2443_dma" , .subsys = &s3c2443_subsys,
@@ -154,3 +171,4 @@ static int __init s3c2443_dma_init(void) }arch_initcall (s3c2443_dma_init); +#endif
arch/arm/plat-samsung/include/plat/regs-dma.h +1 -1
@@ -119,7 +119,7 @@#define S3C2412_DMAREQSEL_UART2_1 S3C2412_DMAREQSEL_SRC(24)#endif /* CONFIG_CPU_S3C2412 */ -#ifdef CONFIG_CPU_S3C2443 +#if defined(CONFIG_CPU_S3C2416 ) || defined(CONFIG_CPU_S3C2443 )#define S3C2443_DMAREQSEL_SRC (x) ((x) << 1)
Signature · 1 line
1.7.2.3
PATCH 3/3 ARM: S3C24XX: remove obsolete S3C2416_DMA option
In reply to Heiko StübnerThe S3C2416 now reuses the dma selection of the S3C2443. Therefore it is not necessary to keep the S3C2416_DMA option around.
--- arch/arm/Kconfig | 1 - arch/arm/mach-s3c2416/Kconfig | 14 -------------- arch/arm/mach-s3c2416/Makefile | 12 ------------ 3 files changed, 0 insertions(+), 27 deletions(-) delete mode 100644 arch/arm/mach-s3c2416/Kconfig delete mode 100644 arch/arm/mach-s3c2416/Makefile
arch/arm/Kconfig +0 -1
@@ -1068,7 +1068,6 @@ source "arch/arm/plat-spear/Kconfig" source "arch/arm/mach-s3c24xx/Kconfig" if ARCH_S3C24XX source "arch/arm/mach-s3c2412/Kconfig" -source "arch/arm/mach-s3c2416/Kconfig" source "arch/arm/mach-s3c2440/Kconfig" endif
arch/arm/mach-s3c2416/Kconfig deleted +0 -14
@@ -1,14 +0,0 @@ -# arch/arm/mach-s3c2416/Kconfig -# -# Copyright 2009 Yauhen Kharuzhy <[email protected]> -# -# Licensed under GPLv2 - -# note, this also supports the S3C2450 which is so similar it has the same -# ID code as the S3C2416. - -config S3C2416_DMA - bool - depends on CPU_S3C2416 - help - Internal config node for S3C2416 DMA support
arch/arm/mach-s3c2416/Makefile deleted +0 -12
@@ -1,12 +0,0 @@ -# arch/arm/mach-s3c2416/Makefile -# -# Copyright 2009 Yauhen Kharuzhy <[email protected]> -# -# Licensed under GPLv2 - -obj-y := -obj-m := -obj-n := -obj- := - -#obj-$(CONFIG_S3C2416_DMA) += dma.o
Signature · 1 line
1.7.2.3
cover S3C24XX: Enable DMA on S3C2416 by sharing S3C2443-DMA
In reply to Heiko StübnerQuoted 8 lines · Heiko St?bner
The S3C2416/2450 contains the same DMA register layout as the S3C2443. Therefore it can simply share this dma selection definition.
As we use the
S3C2443_DMAtheS3C2416_DMAis no longer necessary. The third patch removes this remnant of the S3C24XX merge.The whole series was made on top of the recent S3C24XX merge.
Good, applied.
Thanks.
Best regards,
Kgene.
--
Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd.