Blame view

kernel/linux-rt-4.4.41/arch/avr32/boards/merisc/display.c 1.54 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
  /*
   * Display setup code for the Merisc board
   *
   * Copyright (C) 2008 Martinsson Elektronik AB
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
   */
  #include <linux/init.h>
  #include <linux/platform_device.h>
  #include <linux/fb.h>
  #include <video/atmel_lcdc.h>
  #include <asm/setup.h>
  #include <mach/board.h>
  #include "merisc.h"
  
  static struct fb_videomode merisc_fb_videomode[] = {
  	{
  		.refresh	= 44,
  		.xres		= 640,
  		.yres		= 480,
  		.left_margin	= 96,
  		.right_margin	= 96,
  		.upper_margin	= 34,
  		.lower_margin	= 8,
  		.hsync_len	= 64,
  		.vsync_len	= 64,
  		.name		= "640x480 @ 44",
  		.pixclock	= KHZ2PICOS(25180),
  		.sync		= 0,
  		.vmode		= FB_VMODE_NONINTERLACED,
  	},
  };
  
  static struct fb_monspecs merisc_fb_monspecs = {
  	.manufacturer	= "Kyo",
  	.monitor	= "TCG075VG2AD",
  	.modedb		= merisc_fb_videomode,
  	.modedb_len	= ARRAY_SIZE(merisc_fb_videomode),
  	.hfmin		= 30000,
  	.hfmax		= 33333,
  	.vfmin		= 60,
  	.vfmax		= 90,
  	.dclkmax	= 30000000,
  };
  
  struct atmel_lcdfb_pdata merisc_lcdc_data = {
  	.default_bpp		= 24,
  	.default_dmacon		= ATMEL_LCDC_DMAEN | ATMEL_LCDC_DMA2DEN,
  	.default_lcdcon2	= (ATMEL_LCDC_DISTYPE_TFT
  				   | ATMEL_LCDC_CLKMOD_ALWAYSACTIVE
  				   | ATMEL_LCDC_MEMOR_BIG),
  	.default_monspecs	= &merisc_fb_monspecs,
  	.guard_time		= 2,
  };
  
  static int __init merisc_display_init(void)
  {
  	at32_add_device_lcdc(0, &merisc_lcdc_data, fbmem_start,
  			     fbmem_size, 0);
  
  	return 0;
  }
  device_initcall(merisc_display_init);