aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorKamil Debski <k.debski@samsung.com>2011-12-27 03:16:44 -0500
committerKukjin Kim <kgene.kim@samsung.com>2012-02-10 18:02:41 -0500
commit561ab530bf81c86df1c88d6c8b75718ef1d3b8a6 (patch)
tree115b00ce208bf14cf05d3d941d77da37496204fb /arch
parented8d8aa1e674b5b03fceae56a81cccbcf60ec95e (diff)
ARM: SAMSUNG: add G2D to plat-s5p and mach-exynos
G2D is a 2D graphics accelerator engine present in the s5p family of Samsung SoCs. It is capable of bitblt and raster operations on images having dimensions of up to 8000x8000. Signed-off-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Kukjin Kim <kgene.kim@samsung.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-exynos/include/mach/map.h3
-rw-r--r--arch/arm/plat-s5p/Kconfig5
-rw-r--r--arch/arm/plat-samsung/devs.c28
-rw-r--r--arch/arm/plat-samsung/include/plat/devs.h1
4 files changed, 37 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index c754a22a2bb..7df9e745681 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -31,6 +31,8 @@
31#define EXYNOS4_PA_FIMC2 0x11820000 31#define EXYNOS4_PA_FIMC2 0x11820000
32#define EXYNOS4_PA_FIMC3 0x11830000 32#define EXYNOS4_PA_FIMC3 0x11830000
33 33
34#define EXYNOS4_PA_G2D 0x12800000
35
34#define EXYNOS4_PA_I2S0 0x03830000 36#define EXYNOS4_PA_I2S0 0x03830000
35#define EXYNOS4_PA_I2S1 0xE3100000 37#define EXYNOS4_PA_I2S1 0xE3100000
36#define EXYNOS4_PA_I2S2 0xE2A00000 38#define EXYNOS4_PA_I2S2 0xE2A00000
@@ -162,6 +164,7 @@
162#define S5P_PA_FIMC1 EXYNOS4_PA_FIMC1 164#define S5P_PA_FIMC1 EXYNOS4_PA_FIMC1
163#define S5P_PA_FIMC2 EXYNOS4_PA_FIMC2 165#define S5P_PA_FIMC2 EXYNOS4_PA_FIMC2
164#define S5P_PA_FIMC3 EXYNOS4_PA_FIMC3 166#define S5P_PA_FIMC3 EXYNOS4_PA_FIMC3
167#define S5P_PA_G2D EXYNOS4_PA_G2D
165#define S5P_PA_FIMD0 EXYNOS4_PA_FIMD0 168#define S5P_PA_FIMD0 EXYNOS4_PA_FIMD0
166#define S5P_PA_HDMI EXYNOS4_PA_HDMI 169#define S5P_PA_HDMI EXYNOS4_PA_HDMI
167#define S5P_PA_IIC_HDMIPHY EXYNOS4_PA_IIC_HDMIPHY 170#define S5P_PA_IIC_HDMIPHY EXYNOS4_PA_IIC_HDMIPHY
diff --git a/arch/arm/plat-s5p/Kconfig b/arch/arm/plat-s5p/Kconfig
index 8167ce66188..e7fec7820a1 100644
--- a/arch/arm/plat-s5p/Kconfig
+++ b/arch/arm/plat-s5p/Kconfig
@@ -80,6 +80,11 @@ config S5P_DEV_FIMC3
80 help 80 help
81 Compile in platform device definitions for FIMC controller 3 81 Compile in platform device definitions for FIMC controller 3
82 82
83config S5P_DEV_G2D
84 bool
85 help
86 Compile in platform device definitions for G2D device
87
83config S5P_DEV_FIMD0 88config S5P_DEV_FIMD0
84 bool 89 bool
85 help 90 help
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
index 32a6e394db2..145580a4a62 100644
--- a/arch/arm/plat-samsung/devs.c
+++ b/arch/arm/plat-samsung/devs.c
@@ -267,6 +267,34 @@ struct platform_device s5p_device_fimc3 = {
267}; 267};
268#endif /* CONFIG_S5P_DEV_FIMC3 */ 268#endif /* CONFIG_S5P_DEV_FIMC3 */
269 269
270/* G2D */
271
272#ifdef CONFIG_S5P_DEV_G2D
273static struct resource s5p_g2d_resource[] = {
274 [0] = {
275 .start = S5P_PA_G2D,
276 .end = S5P_PA_G2D + SZ_4K - 1,
277 .flags = IORESOURCE_MEM,
278 },
279 [1] = {
280 .start = IRQ_2D,
281 .end = IRQ_2D,
282 .flags = IORESOURCE_IRQ,
283 },
284};
285
286struct platform_device s5p_device_g2d = {
287 .name = "s5p-g2d",
288 .id = 0,
289 .num_resources = ARRAY_SIZE(s5p_g2d_resource),
290 .resource = s5p_g2d_resource,
291 .dev = {
292 .dma_mask = &samsung_device_dma_mask,
293 .coherent_dma_mask = DMA_BIT_MASK(32),
294 },
295};
296#endif /* CONFIG_S5P_DEV_G2D */
297
270/* FIMD0 */ 298/* FIMD0 */
271 299
272#ifdef CONFIG_S5P_DEV_FIMD0 300#ifdef CONFIG_S5P_DEV_FIMD0
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h
index 4214ea0ff8f..bb458481503 100644
--- a/arch/arm/plat-samsung/include/plat/devs.h
+++ b/arch/arm/plat-samsung/include/plat/devs.h
@@ -79,6 +79,7 @@ extern struct platform_device s5p_device_fimc1;
79extern struct platform_device s5p_device_fimc2; 79extern struct platform_device s5p_device_fimc2;
80extern struct platform_device s5p_device_fimc3; 80extern struct platform_device s5p_device_fimc3;
81extern struct platform_device s5p_device_fimc_md; 81extern struct platform_device s5p_device_fimc_md;
82extern struct platform_device s5p_device_g2d;
82extern struct platform_device s5p_device_fimd0; 83extern struct platform_device s5p_device_fimd0;
83extern struct platform_device s5p_device_hdmi; 84extern struct platform_device s5p_device_hdmi;
84extern struct platform_device s5p_device_i2c_hdmiphy; 85extern struct platform_device s5p_device_i2c_hdmiphy;