diff options
Diffstat (limited to 'arch/arm/mach-shmobile/board-mackerel.c')
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 7da2ca24229d..a165a9e70eea 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -279,6 +279,30 @@ static struct platform_device smc911x_device = { | |||
279 | }, | 279 | }, |
280 | }; | 280 | }; |
281 | 281 | ||
282 | /* MERAM */ | ||
283 | static struct sh_mobile_meram_info mackerel_meram_info = { | ||
284 | .addr_mode = SH_MOBILE_MERAM_MODE1, | ||
285 | }; | ||
286 | |||
287 | static struct resource meram_resources[] = { | ||
288 | [0] = { | ||
289 | .name = "MERAM", | ||
290 | .start = 0xe8000000, | ||
291 | .end = 0xe81fffff, | ||
292 | .flags = IORESOURCE_MEM, | ||
293 | }, | ||
294 | }; | ||
295 | |||
296 | static struct platform_device meram_device = { | ||
297 | .name = "sh_mobile_meram", | ||
298 | .id = 0, | ||
299 | .num_resources = ARRAY_SIZE(meram_resources), | ||
300 | .resource = meram_resources, | ||
301 | .dev = { | ||
302 | .platform_data = &mackerel_meram_info, | ||
303 | }, | ||
304 | }; | ||
305 | |||
282 | /* LCDC */ | 306 | /* LCDC */ |
283 | static struct fb_videomode mackerel_lcdc_modes[] = { | 307 | static struct fb_videomode mackerel_lcdc_modes[] = { |
284 | { | 308 | { |
@@ -307,7 +331,23 @@ static int mackerel_get_brightness(void *board_data) | |||
307 | return gpio_get_value(GPIO_PORT31); | 331 | return gpio_get_value(GPIO_PORT31); |
308 | } | 332 | } |
309 | 333 | ||
334 | static struct sh_mobile_meram_cfg lcd_meram_cfg = { | ||
335 | .icb[0] = { | ||
336 | .marker_icb = 28, | ||
337 | .cache_icb = 24, | ||
338 | .meram_offset = 0x0, | ||
339 | .meram_size = 0x40, | ||
340 | }, | ||
341 | .icb[1] = { | ||
342 | .marker_icb = 29, | ||
343 | .cache_icb = 25, | ||
344 | .meram_offset = 0x40, | ||
345 | .meram_size = 0x40, | ||
346 | }, | ||
347 | }; | ||
348 | |||
310 | static struct sh_mobile_lcdc_info lcdc_info = { | 349 | static struct sh_mobile_lcdc_info lcdc_info = { |
350 | .meram_dev = &mackerel_meram_info, | ||
311 | .clock_source = LCDC_CLK_BUS, | 351 | .clock_source = LCDC_CLK_BUS, |
312 | .ch[0] = { | 352 | .ch[0] = { |
313 | .chan = LCDC_CHAN_MAINLCD, | 353 | .chan = LCDC_CHAN_MAINLCD, |
@@ -327,6 +367,7 @@ static struct sh_mobile_lcdc_info lcdc_info = { | |||
327 | .name = "sh_mobile_lcdc_bl", | 367 | .name = "sh_mobile_lcdc_bl", |
328 | .max_brightness = 1, | 368 | .max_brightness = 1, |
329 | }, | 369 | }, |
370 | .meram_cfg = &lcd_meram_cfg, | ||
330 | } | 371 | } |
331 | }; | 372 | }; |
332 | 373 | ||
@@ -353,8 +394,23 @@ static struct platform_device lcdc_device = { | |||
353 | }, | 394 | }, |
354 | }; | 395 | }; |
355 | 396 | ||
397 | static struct sh_mobile_meram_cfg hdmi_meram_cfg = { | ||
398 | .icb[0] = { | ||
399 | .marker_icb = 30, | ||
400 | .cache_icb = 26, | ||
401 | .meram_offset = 0x80, | ||
402 | .meram_size = 0x100, | ||
403 | }, | ||
404 | .icb[1] = { | ||
405 | .marker_icb = 31, | ||
406 | .cache_icb = 27, | ||
407 | .meram_offset = 0x180, | ||
408 | .meram_size = 0x100, | ||
409 | }, | ||
410 | }; | ||
356 | /* HDMI */ | 411 | /* HDMI */ |
357 | static struct sh_mobile_lcdc_info hdmi_lcdc_info = { | 412 | static struct sh_mobile_lcdc_info hdmi_lcdc_info = { |
413 | .meram_dev = &mackerel_meram_info, | ||
358 | .clock_source = LCDC_CLK_EXTERNAL, | 414 | .clock_source = LCDC_CLK_EXTERNAL, |
359 | .ch[0] = { | 415 | .ch[0] = { |
360 | .chan = LCDC_CHAN_MAINLCD, | 416 | .chan = LCDC_CHAN_MAINLCD, |
@@ -362,6 +418,7 @@ static struct sh_mobile_lcdc_info hdmi_lcdc_info = { | |||
362 | .interface_type = RGB24, | 418 | .interface_type = RGB24, |
363 | .clock_divider = 1, | 419 | .clock_divider = 1, |
364 | .flags = LCDC_FLAGS_DWPOL, | 420 | .flags = LCDC_FLAGS_DWPOL, |
421 | .meram_cfg = &hdmi_meram_cfg, | ||
365 | } | 422 | } |
366 | }; | 423 | }; |
367 | 424 | ||
@@ -949,6 +1006,7 @@ static struct platform_device *mackerel_devices[] __initdata = { | |||
949 | &mackerel_camera, | 1006 | &mackerel_camera, |
950 | &hdmi_lcdc_device, | 1007 | &hdmi_lcdc_device, |
951 | &hdmi_device, | 1008 | &hdmi_device, |
1009 | &meram_device, | ||
952 | }; | 1010 | }; |
953 | 1011 | ||
954 | /* Keypad Initialization */ | 1012 | /* Keypad Initialization */ |