summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSangwook Lee <sangwook.lee@linaro.org>2012-05-08 11:45:22 +0100
committerTushar Behera <tushar.behera@linaro.org>2013-03-14 10:47:17 +0530
commitb1270a90a85ba0694021caf0f4c88a8dc88e351a (patch)
tree1d4f860982041d4823a64a9c488e08c188e8911a
parentcbfe0beeccfb4247e13323d452582d555b182fbe (diff)
ARM: EXYNOS: Add platform support for G3D
Added Power Domain functions for G3D(Mali) Exynos 4210 Signed-off-by: Sangwook Lee <sangwook.lee@linaro.org> Signed-off-by: Tushar Behera <tushar.behera@linaro.org>
-rw-r--r--arch/arm/mach-exynos/include/mach/map.h3
-rw-r--r--arch/arm/mach-exynos/pm_domains.c5
-rw-r--r--arch/arm/plat-samsung/Kconfig5
-rw-r--r--arch/arm/plat-samsung/devs.c19
-rw-r--r--arch/arm/plat-samsung/include/plat/devs.h1
5 files changed, 33 insertions, 0 deletions
diff --git a/arch/arm/mach-exynos/include/mach/map.h b/arch/arm/mach-exynos/include/mach/map.h
index deb86440bf16..d3c21f8f42ec 100644
--- a/arch/arm/mach-exynos/include/mach/map.h
+++ b/arch/arm/mach-exynos/include/mach/map.h
@@ -42,6 +42,8 @@
#define EXYNOS4_PA_G2D 0x12800000
+#define EXYNOS4_PA_G3D 0x13000000
+
#define EXYNOS4_PA_I2S0 0x03830000
#define EXYNOS4_PA_I2S1 0xE3100000
#define EXYNOS4_PA_I2S2 0xE2A00000
@@ -261,6 +263,7 @@
#define S5P_PA_FIMC3 EXYNOS4_PA_FIMC3
#define S5P_PA_JPEG EXYNOS4_PA_JPEG
#define S5P_PA_G2D EXYNOS4_PA_G2D
+#define S5P_PA_G3D EXYNOS4_PA_G3D
#define S5P_PA_FIMD0 EXYNOS4_PA_FIMD0
#define S5P_PA_HDMI EXYNOS4_PA_HDMI
#define S5P_PA_IIC_HDMIPHY EXYNOS4_PA_IIC_HDMIPHY
diff --git a/arch/arm/mach-exynos/pm_domains.c b/arch/arm/mach-exynos/pm_domains.c
index 9f1351de52f7..b9bfc3b96435 100644
--- a/arch/arm/mach-exynos/pm_domains.c
+++ b/arch/arm/mach-exynos/pm_domains.c
@@ -276,6 +276,11 @@ static __init int exynos4_pm_init_power_domain(void)
#ifdef CONFIG_S5P_DEV_G2D
exynos_pm_add_dev_to_genpd(&s5p_device_g2d, &exynos4_pd_lcd0);
#endif
+#ifdef CONFIG_S5P_DEV_G3D
+ /* MALI requires the PD to be always on. */
+ exynos4_pd_g3d.pd.power_off = NULL;
+ exynos_pm_add_dev_to_genpd(&s5p_device_g3d, &exynos4_pd_g3d);
+#endif
#ifdef CONFIG_S5P_DEV_JPEG
exynos_pm_add_dev_to_genpd(&s5p_device_jpeg, &exynos4_pd_cam);
#endif
diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
index a9d52167e16e..c67ff56c2e6d 100644
--- a/arch/arm/plat-samsung/Kconfig
+++ b/arch/arm/plat-samsung/Kconfig
@@ -371,6 +371,11 @@ config S5P_DEV_G2D
help
Compile in platform device definitions for G2D device
+config S5P_DEV_G3D
+ bool
+ help
+ Compile in platform device definitions for G3D device
+
config S5P_DEV_I2C_HDMIPHY
bool
help
diff --git a/arch/arm/plat-samsung/devs.c b/arch/arm/plat-samsung/devs.c
index 51afedda9ab6..405e53c76e16 100644
--- a/arch/arm/plat-samsung/devs.c
+++ b/arch/arm/plat-samsung/devs.c
@@ -282,6 +282,25 @@ struct platform_device s5p_device_g2d = {
};
#endif /* CONFIG_S5P_DEV_G2D */
+/* G3D */
+
+#ifdef CONFIG_S5P_DEV_G3D
+static struct resource s5p_g3d_resource[] = {
+ [0] = DEFINE_RES_MEM(S5P_PA_G3D, SZ_256K),
+};
+
+struct platform_device s5p_device_g3d = {
+ .name = "s5p-g3d",
+ .id = 0,
+ .num_resources = ARRAY_SIZE(s5p_g3d_resource),
+ .resource = s5p_g3d_resource,
+ .dev = {
+ .dma_mask = &samsung_device_dma_mask,
+ .coherent_dma_mask = DMA_BIT_MASK(32),
+ },
+};
+#endif /* CONFIG_S5P_DEV_G3D */
+
#ifdef CONFIG_S5P_DEV_JPEG
static struct resource s5p_jpeg_resource[] = {
[0] = DEFINE_RES_MEM(S5P_PA_JPEG, SZ_4K),
diff --git a/arch/arm/plat-samsung/include/plat/devs.h b/arch/arm/plat-samsung/include/plat/devs.h
index 87d501ff3328..7573bdc3dcf8 100644
--- a/arch/arm/plat-samsung/include/plat/devs.h
+++ b/arch/arm/plat-samsung/include/plat/devs.h
@@ -83,6 +83,7 @@ extern struct platform_device s5p_device_fimc3;
extern struct platform_device s5p_device_fimc_md;
extern struct platform_device s5p_device_jpeg;
extern struct platform_device s5p_device_g2d;
+extern struct platform_device s5p_device_g3d;
extern struct platform_device s5p_device_fimd0;
extern struct platform_device s5p_device_hdmi;
extern struct platform_device s5p_device_i2c_hdmiphy;