Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'rmobile/fbdev' into rmobile-latest

+114
+56
arch/arm/mach-shmobile/board-ap4evb.c
··· 249 249 { 250 250 return !gpio_get_value(GPIO_PORT41); 251 251 } 252 + /* MERAM */ 253 + static struct sh_mobile_meram_info meram_info = { 254 + .addr_mode = SH_MOBILE_MERAM_MODE1, 255 + }; 256 + 257 + static struct resource meram_resources[] = { 258 + [0] = { 259 + .name = "MERAM", 260 + .start = 0xe8000000, 261 + .end = 0xe81fffff, 262 + .flags = IORESOURCE_MEM, 263 + }, 264 + }; 265 + 266 + static struct platform_device meram_device = { 267 + .name = "sh_mobile_meram", 268 + .id = 0, 269 + .num_resources = ARRAY_SIZE(meram_resources), 270 + .resource = meram_resources, 271 + .dev = { 272 + .platform_data = &meram_info, 273 + }, 274 + }; 252 275 253 276 /* SH_MMCIF */ 254 277 static struct resource sh_mmcif_resources[] = { ··· 470 447 #endif 471 448 }, 472 449 }; 450 + static struct sh_mobile_meram_cfg lcd_meram_cfg = { 451 + .icb[0] = { 452 + .marker_icb = 28, 453 + .cache_icb = 24, 454 + .meram_offset = 0x0, 455 + .meram_size = 0x40, 456 + }, 457 + .icb[1] = { 458 + .marker_icb = 29, 459 + .cache_icb = 25, 460 + .meram_offset = 0x40, 461 + .meram_size = 0x40, 462 + }, 463 + }; 473 464 474 465 static struct sh_mobile_lcdc_info lcdc_info = { 466 + .meram_dev = &meram_info, 475 467 .ch[0] = { 476 468 .chan = LCDC_CHAN_MAINLCD, 477 469 .bpp = 16, 478 470 .lcd_cfg = ap4evb_lcdc_modes, 479 471 .num_cfg = ARRAY_SIZE(ap4evb_lcdc_modes), 472 + .meram_cfg = &lcd_meram_cfg, 480 473 } 481 474 }; 482 475 ··· 763 724 static struct platform_device fsi_ak4643_device = { 764 725 .name = "sh_fsi2_a_ak4643", 765 726 }; 727 + static struct sh_mobile_meram_cfg hdmi_meram_cfg = { 728 + .icb[0] = { 729 + .marker_icb = 30, 730 + .cache_icb = 26, 731 + .meram_offset = 0x80, 732 + .meram_size = 0x100, 733 + }, 734 + .icb[1] = { 735 + .marker_icb = 31, 736 + .cache_icb = 27, 737 + .meram_offset = 0x180, 738 + .meram_size = 0x100, 739 + }, 740 + }; 766 741 767 742 static struct sh_mobile_lcdc_info sh_mobile_lcdc1_info = { 768 743 .clock_source = LCDC_CLK_EXTERNAL, 744 + .meram_dev = &meram_info, 769 745 .ch[0] = { 770 746 .chan = LCDC_CHAN_MAINLCD, 771 747 .bpp = 16, 772 748 .interface_type = RGB24, 773 749 .clock_divider = 1, 774 750 .flags = LCDC_FLAGS_DWPOL, 751 + .meram_cfg = &hdmi_meram_cfg, 775 752 } 776 753 }; 777 754 ··· 1016 961 &csi2_device, 1017 962 &ceu_device, 1018 963 &ap4evb_camera, 964 + &meram_device, 1019 965 }; 1020 966 1021 967 static void __init hdmi_init_pm_clock(void)
+58
arch/arm/mach-shmobile/board-mackerel.c
··· 314 314 }, 315 315 }; 316 316 317 + /* MERAM */ 318 + static struct sh_mobile_meram_info mackerel_meram_info = { 319 + .addr_mode = SH_MOBILE_MERAM_MODE1, 320 + }; 321 + 322 + static struct resource meram_resources[] = { 323 + [0] = { 324 + .name = "MERAM", 325 + .start = 0xe8000000, 326 + .end = 0xe81fffff, 327 + .flags = IORESOURCE_MEM, 328 + }, 329 + }; 330 + 331 + static struct platform_device meram_device = { 332 + .name = "sh_mobile_meram", 333 + .id = 0, 334 + .num_resources = ARRAY_SIZE(meram_resources), 335 + .resource = meram_resources, 336 + .dev = { 337 + .platform_data = &mackerel_meram_info, 338 + }, 339 + }; 340 + 317 341 /* LCDC */ 318 342 static struct fb_videomode mackerel_lcdc_modes[] = { 319 343 { ··· 366 342 return gpio_get_value(GPIO_PORT31); 367 343 } 368 344 345 + static struct sh_mobile_meram_cfg lcd_meram_cfg = { 346 + .icb[0] = { 347 + .marker_icb = 28, 348 + .cache_icb = 24, 349 + .meram_offset = 0x0, 350 + .meram_size = 0x40, 351 + }, 352 + .icb[1] = { 353 + .marker_icb = 29, 354 + .cache_icb = 25, 355 + .meram_offset = 0x40, 356 + .meram_size = 0x40, 357 + }, 358 + }; 359 + 369 360 static struct sh_mobile_lcdc_info lcdc_info = { 361 + .meram_dev = &mackerel_meram_info, 370 362 .clock_source = LCDC_CLK_BUS, 371 363 .ch[0] = { 372 364 .chan = LCDC_CHAN_MAINLCD, ··· 402 362 .name = "sh_mobile_lcdc_bl", 403 363 .max_brightness = 1, 404 364 }, 365 + .meram_cfg = &lcd_meram_cfg, 405 366 } 406 367 }; 407 368 ··· 429 388 }, 430 389 }; 431 390 391 + static struct sh_mobile_meram_cfg hdmi_meram_cfg = { 392 + .icb[0] = { 393 + .marker_icb = 30, 394 + .cache_icb = 26, 395 + .meram_offset = 0x80, 396 + .meram_size = 0x100, 397 + }, 398 + .icb[1] = { 399 + .marker_icb = 31, 400 + .cache_icb = 27, 401 + .meram_offset = 0x180, 402 + .meram_size = 0x100, 403 + }, 404 + }; 432 405 /* HDMI */ 433 406 static struct sh_mobile_lcdc_info hdmi_lcdc_info = { 407 + .meram_dev = &mackerel_meram_info, 434 408 .clock_source = LCDC_CLK_EXTERNAL, 435 409 .ch[0] = { 436 410 .chan = LCDC_CHAN_MAINLCD, ··· 453 397 .interface_type = RGB24, 454 398 .clock_divider = 1, 455 399 .flags = LCDC_FLAGS_DWPOL, 400 + .meram_cfg = &hdmi_meram_cfg, 456 401 } 457 402 }; 458 403 ··· 1207 1150 &mackerel_camera, 1208 1151 &hdmi_lcdc_device, 1209 1152 &hdmi_device, 1153 + &meram_device, 1210 1154 }; 1211 1155 1212 1156 /* Keypad Initialization */