|
@@ -249,6 +249,29 @@ static int slot_cn7_get_cd(struct platform_device *pdev)
|
|
{
|
|
{
|
|
return !gpio_get_value(GPIO_PORT41);
|
|
return !gpio_get_value(GPIO_PORT41);
|
|
}
|
|
}
|
|
|
|
+/* MERAM */
|
|
|
|
+static struct sh_mobile_meram_info meram_info = {
|
|
|
|
+ .addr_mode = SH_MOBILE_MERAM_MODE1,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct resource meram_resources[] = {
|
|
|
|
+ [0] = {
|
|
|
|
+ .name = "MERAM",
|
|
|
|
+ .start = 0xe8000000,
|
|
|
|
+ .end = 0xe81fffff,
|
|
|
|
+ .flags = IORESOURCE_MEM,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct platform_device meram_device = {
|
|
|
|
+ .name = "sh_mobile_meram",
|
|
|
|
+ .id = 0,
|
|
|
|
+ .num_resources = ARRAY_SIZE(meram_resources),
|
|
|
|
+ .resource = meram_resources,
|
|
|
|
+ .dev = {
|
|
|
|
+ .platform_data = &meram_info,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
|
|
/* SH_MMCIF */
|
|
/* SH_MMCIF */
|
|
static struct resource sh_mmcif_resources[] = {
|
|
static struct resource sh_mmcif_resources[] = {
|
|
@@ -431,13 +454,29 @@ const static struct fb_videomode ap4evb_lcdc_modes[] = {
|
|
#endif
|
|
#endif
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
+static struct sh_mobile_meram_cfg lcd_meram_cfg = {
|
|
|
|
+ .icb[0] = {
|
|
|
|
+ .marker_icb = 28,
|
|
|
|
+ .cache_icb = 24,
|
|
|
|
+ .meram_offset = 0x0,
|
|
|
|
+ .meram_size = 0x40,
|
|
|
|
+ },
|
|
|
|
+ .icb[1] = {
|
|
|
|
+ .marker_icb = 29,
|
|
|
|
+ .cache_icb = 25,
|
|
|
|
+ .meram_offset = 0x40,
|
|
|
|
+ .meram_size = 0x40,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
|
|
static struct sh_mobile_lcdc_info lcdc_info = {
|
|
static struct sh_mobile_lcdc_info lcdc_info = {
|
|
|
|
+ .meram_dev = &meram_info,
|
|
.ch[0] = {
|
|
.ch[0] = {
|
|
.chan = LCDC_CHAN_MAINLCD,
|
|
.chan = LCDC_CHAN_MAINLCD,
|
|
.bpp = 16,
|
|
.bpp = 16,
|
|
.lcd_cfg = ap4evb_lcdc_modes,
|
|
.lcd_cfg = ap4evb_lcdc_modes,
|
|
.num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes),
|
|
.num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes),
|
|
|
|
+ .meram_cfg = &lcd_meram_cfg,
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -708,15 +747,31 @@ static struct platform_device fsi_device = {
|
|
static struct platform_device fsi_ak4643_device = {
|
|
static struct platform_device fsi_ak4643_device = {
|
|
.name = "sh_fsi2_a_ak4643",
|
|
.name = "sh_fsi2_a_ak4643",
|
|
};
|
|
};
|
|
|
|
+static struct sh_mobile_meram_cfg hdmi_meram_cfg = {
|
|
|
|
+ .icb[0] = {
|
|
|
|
+ .marker_icb = 30,
|
|
|
|
+ .cache_icb = 26,
|
|
|
|
+ .meram_offset = 0x80,
|
|
|
|
+ .meram_size = 0x100,
|
|
|
|
+ },
|
|
|
|
+ .icb[1] = {
|
|
|
|
+ .marker_icb = 31,
|
|
|
|
+ .cache_icb = 27,
|
|
|
|
+ .meram_offset = 0x180,
|
|
|
|
+ .meram_size = 0x100,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
|
|
static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = {
|
|
static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = {
|
|
.clock_source = LCDC_CLK_EXTERNAL,
|
|
.clock_source = LCDC_CLK_EXTERNAL,
|
|
|
|
+ .meram_dev = &meram_info,
|
|
.ch[0] = {
|
|
.ch[0] = {
|
|
.chan = LCDC_CHAN_MAINLCD,
|
|
.chan = LCDC_CHAN_MAINLCD,
|
|
.bpp = 16,
|
|
.bpp = 16,
|
|
.interface_type = RGB24,
|
|
.interface_type = RGB24,
|
|
.clock_divider = 1,
|
|
.clock_divider = 1,
|
|
.flags = LCDC_FLAGS_DWPOL,
|
|
.flags = LCDC_FLAGS_DWPOL,
|
|
|
|
+ .meram_cfg = &hdmi_meram_cfg,
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
@@ -945,6 +1000,7 @@ static struct platform_device *ap4evb_devices[] __initdata = {
|
|
&csi2_device,
|
|
&csi2_device,
|
|
&ceu_device,
|
|
&ceu_device,
|
|
&ap4evb_camera,
|
|
&ap4evb_camera,
|
|
|
|
+ &meram_device,
|
|
};
|
|
};
|
|
|
|
|
|
static void __init hdmi_init_pm_clock(void)
|
|
static void __init hdmi_init_pm_clock(void)
|