[转]移植linux-2.6.36内核后的ts及lcd驱动参数修改

来源:互联网 发布:mac开机文件夹问号 编辑:程序博客网 时间:2024/06/05 04:34

本文转自:http://blogold.chinaunix.net/u4/120285/showart_2396199.html

 

移植linux-2.6.36内核及修改touchscreen及lcd都可以工作了,作个记号。


延续上篇的步骤:

1.在arch/arm/mach-s3c2440/mach-mini2440.c文件中加一项:


/* ts driver info */
  static struct s3c2410_ts_mach_info zl2440_ts_cfg __initdata = {
          .delay = 10000,
          .presc = 49,
          .oversampling_shift = 2,
  };


2.在函数mini2440_machine_init(void)中加入相关代码:

static void __init mini2440_machine_init(void)
  {
      s3c24xx_ts_set_platdata(&zl2440_ts_cfg);
  
      s3c24xx_fb_set_platdata(&mini2440_fb_info);
      //s3c_i2c0_set_platdata(NULL);
  
      platform_add_devices(zl2440_devices, ARRAY_SIZE(zl2440_devices));
      //smdk_machine_init();
  }


3.在数组static struct platform_device *zl2440_devices[]中加入两项:

static struct platform_device *zl2440_devices[] __initdata = {
      &s3c_device_ohci,
      &s3c_device_lcd,
      &s3c_device_adc,
      &s3c_device_ts,
      //&s3c_device_wdt,
      //&s3c_device_i2c0,
      &s3c_device_iis,
  };

其中有一个很有意思的地方"s3c_device_adc"必须在"s3c_device_ts"的前面。否则touchscreen初始化时会出错。

make之后。新的zImage起来,从文件/dev/input/event0可以读取touchscreen的状态及坐标。

下面继续lcd的修改:
系统起来后LCD上已经有企鹅的图片了,但图片
只占有整个LCD面积的上半部分,并且图片扭曲。
static struct s3c2410fb_mach_info mini2440_fb_info中的lpcsel修改
((0xCE6) & ~7) | 1<<1
即可。

static struct s3c2410fb_mach_info mini2440_fb_info __initdata = {
      .displays   = &mini2440_lcd_cfg,
      .num_displays   = 1,
      .default_display = 0,
 
  #if 0
      .gpccon =   0xaa955699,
      .gpccon_mask =  0xffc003cc,
      .gpcup =    0x0000ffff,
      .gpcup_mask =   0xffffffff,
      .gpdcon =   0xaa95aaa1,
      .gpdcon_mask =  0xffc0fff0,
      .gpdup =    0x0000faff,
      .gpdup_mask =   0xffffffff,
 
  #endif
 
      //.lpcsel       = ((0xCE6) & ~7) | 1<<4,
      .lpcsel     = ((0xCE6) & ~7) | 1<<1,
      //.lpcsel       = 0xf82,    //2.6.13/2.6.36(ok)
  };


make之,新的zImage起来后。企鹅图片正常了。

原创粉丝点击