summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/board-mx6q_arm2.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-mx6/board-mx6q_arm2.c')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_arm2.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_arm2.c b/arch/arm/mach-mx6/board-mx6q_arm2.c
index 29911a232de2..c604319ef986 100644
--- a/arch/arm/mach-mx6/board-mx6q_arm2.c
+++ b/arch/arm/mach-mx6/board-mx6q_arm2.c
@@ -45,6 +45,7 @@
#include <linux/fec.h>
#include <linux/memblock.h>
#include <linux/gpio.h>
+#include <linux/ion.h>
#include <linux/etherdevice.h>
#include <linux/regulator/anatop-regulator.h>
#include <linux/regulator/consumer.h>
@@ -1251,7 +1252,7 @@ static void __init mx6_arm2_init_usb(void)
}
static struct viv_gpu_platform_data imx6_gpu_pdata __initdata = {
- .reserved_mem_size = SZ_128M,
+ .reserved_mem_size = SZ_128M + SZ_64M,
};
/* HW Initialization, if return 0, initialization is successful. */
@@ -1370,7 +1371,7 @@ static struct ipuv3_fb_platform_data sabr_fb_data[] = {
.disp_dev = "ldb",
.interface_pix_fmt = IPU_PIX_FMT_RGB666,
.mode_str = "LDB-XGA",
- .default_bpp = 16,
+ .default_bpp = 32,
.int_clk = false,
}, {
.disp_dev = "mipi_dsi",
@@ -1382,7 +1383,7 @@ static struct ipuv3_fb_platform_data sabr_fb_data[] = {
.disp_dev = "ldb",
.interface_pix_fmt = IPU_PIX_FMT_RGB666,
.mode_str = "LDB-XGA",
- .default_bpp = 16,
+ .default_bpp = 32,
.int_clk = false,
}, {
.disp_dev = "lcd",
@@ -1486,6 +1487,17 @@ static struct platform_pwm_backlight_data mx6_arm2_pwm_backlight_data = {
.pwm_period_ns = 50000,
};
+static struct ion_platform_data imx_ion_data = {
+ .nr = 1,
+ .heaps = {
+ {
+ .type = ION_HEAP_TYPE_CARVEOUT,
+ .name = "vpu_ion",
+ .size = SZ_64M,
+ },
+ },
+};
+
static struct gpio mx6_flexcan_gpios[] = {
{ MX6_ARM2_CAN1_EN, GPIOF_OUT_INIT_LOW, "flexcan1-en" },
{ MX6_ARM2_CAN1_STBY, GPIOF_OUT_INIT_LOW, "flexcan1-stby" },
@@ -2183,6 +2195,9 @@ static void __init mx6_arm2_init(void)
imx6q_add_dvfs_core(&arm2_dvfscore_data);
+ imx6q_add_ion(0, &imx_ion_data,
+ sizeof(imx_ion_data) + sizeof(struct ion_platform_heap));
+
imx6q_add_mxc_pwm(0);
imx6q_add_mxc_pwm_backlight(0, &mx6_arm2_pwm_backlight_data);
@@ -2243,9 +2258,8 @@ static struct sys_timer mxc_timer = {
static void __init mx6_arm2_reserve(void)
{
-#if defined(CONFIG_MXC_GPU_VIV) || defined(CONFIG_MXC_GPU_VIV_MODULE)
phys_addr_t phys;
-
+#if defined(CONFIG_MXC_GPU_VIV) || defined(CONFIG_MXC_GPU_VIV_MODULE)
if (imx6_gpu_pdata.reserved_mem_size) {
phys = memblock_alloc_base(
imx6_gpu_pdata.reserved_mem_size, SZ_4K, SZ_2G);
@@ -2253,6 +2267,15 @@ static void __init mx6_arm2_reserve(void)
imx6_gpu_pdata.reserved_mem_base = phys;
}
#endif
+
+#if defined(CONFIG_ION)
+ if (imx_ion_data.heaps[0].size) {
+ phys = memblock_alloc(imx_ion_data.heaps[0].size, SZ_4K);
+ memblock_free(phys, imx_ion_data.heaps[0].size);
+ memblock_remove(phys, imx_ion_data.heaps[0].size);
+ imx_ion_data.heaps[0].base = phys;
+ }
+#endif
}
MACHINE_START(MX6Q_ARM2, "Freescale i.MX 6Quad/Solo/DualLite Armadillo2 Board")