原址
学有所得,得有共享,这才是进步之道。 
最近天天加班,很多博文写了一半觉得不完善,只好忍痛丢进了草稿箱。
不管其他的,今天得讲讲移植TP的东西:       
注:此处TP移植讲解以移植适应“思立微”TP IC为实例,其他IC可依葫芦画瓢。         

1.添加触摸屏驱动

把触摸IC供应商提供的驱动文件(rockchip_gslX680.c ;rockchip_gslX680.h)复制到kernel/drivers/input/touchscreen/下

并进行touch命令,以修改文件的时间戳。

2.修改kernel/drivers/input/touchscreen/下的Kconfig文件,在该文件定义config宏
    config TOUCHSCREEN_GSLX680
            tristate "gslX680 touchscreen panel support"
            depends on I2C2_RK29 || I2C2_RK30

3.修改kernel/drivers/input/touchscreen/下的Makefile文件,在该文件最后添加

obj-$(CONFIG_TOUCHSCREEN_GSLX680)       += rockchip_gslX680.o

4. 修改kernel/arch/arm/mach-rk2928/borad-rk2926-sdk.c文件

添加如下代码:

#if defined(CONFIG_TOUCHSCREEN_GSLX680)
#define TOUCH_RESET_PIN  INVALID_GPIO //RK2928_PIN0_PD3//RK2928_PIN1_PA3
#define TOUCH_INT_PIN    RK2928_PIN1_PB0
int gslx680_init_platform_hw(void)
{
        //printk("ft5306_init_platform_hw\n");
        if(gpio_request(TOUCH_RESET_PIN,NULL) != 0){
                gpio_free(TOUCH_RESET_PIN);
                printk("gslx680_init_platform_hw gpio_request error\n");
                return -EIO;
        }
        if(gpio_request(TOUCH_INT_PIN,NULL) != 0){
                gpio_free(TOUCH_INT_PIN);
                printk("gslx680_init_platform_hw gpio_request error\n");
                return -EIO;
        }
        gpio_direction_output(TOUCH_RESET_PIN, GPIO_HIGH);
        mdelay(10);
        gpio_set_value(TOUCH_RESET_PIN,GPIO_LOW);
        mdelay(10);
        gpio_set_value(TOUCH_RESET_PIN,GPIO_HIGH);
        msleep(300);
        return 0;
}
struct goodix_platform_data gslx680_ts_hw_info = {
        .model = 8107,
 //       .irq_pin = RK2928_PIN1_PB0,
        .rest_pin = TOUCH_RESET_PIN,
        .init_platform_hw = gslx680_init_platform_hw,
};
#endif

------------------------------------------------------------------------------------------------------

#if defined (CONFIG_TOUCHSCREEN_GSLX680)
        {
            .type           = "gslx680_ts",                                      //名字为gslx680_ts
            .addr           = 0x40,                                                  // i2c地址为0x40
            .flags          = 0,
            .irq            = TOUCH_INT_PIN,                              //指定中断脚
            .platform_data = &gslx680_ts_hw_info,
        },
#endif

5.在menuconfig中选中“gslX680 touchscreen panel support”选项,编译即可。

补充:Kconfig文件的作用
         内核源码树的目录下都有两个文件Kconfig(2.4版本是Config.in)和Makefile。分布到各目录的Kconfig构成了一个分布式的内核配置数据库,每个Kconfig分别描述了所属目录源文件相关的内核配置菜单。在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出菜单,用户选择后保存到.config的内核配置文件中。在内核编译时,主Makefile调用这个.config,就知道了用户的选择。

Android4.1.1_r1系统移植------TP移植篇相关推荐

  1. 迅为4412开发板(全能版)V_4.0 ubuntu 在Android4.4.4的内核下移植wifi

    为4412全能版V_4.0 ubuntu 在Android4.4.4的内核下移植wifi 背景:由于厂家迅为的全能版的V4.0底板和V3.5底板的wifi部分有改动,所以需要重新移植wifi      ...

  2. PopStar(消灭星星)游戏源代码下载、分析及跨平台移植---第三篇(分数)

    背景: 经过消灭星星第二篇算法,最高的山峰已经过去了,剩下的都是小沟小河,没什么难度了.这一节笔者继续完成消灭星星的分数篇,这节主要包括:触摸提示得分 比如4 blocks 80 points,然后产 ...

  3. NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号

    NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号 1. EC20模块连接 2. Linux内核配置 3. 交叉编译PPP 4. 拨号脚本 5. 进行拨号 1. EC20模块连接 在 ...

  4. 基于DE2的开源片上系统Freedom E310移植

    引言:伯克利大学于2014年发布了开源指令集架构RISC-V,其目标是成为指令集架构领域的Linux,应用覆盖IoT(Internet of Things)设备.桌面计算机.高性能计算机等众多领域[1 ...

  5. Powerlink总线协议在QNX系统上的移植

    一.硬件平台  通讯主站选用安装QNX系统的工控机,交叉编译工具选用QNX Momentics IDE,QNX Momentics IDE软件是基于WINDOWS系统下的QNX交叉开发环境,使用户可以 ...

  6. T2080 U-BOOT与OS内核移植 u-boot移植篇(一)——创建新目标板的u-boot工程

    T2080 U-BOOT与OS内核移植 u-boot移植篇(一)--创建新目标板的u-boot工程 一.创建新目标板文件夹并修改相应文件 1.创建新目标板文件夹 2.修改t2080tpm文件夹中的相应 ...

  7. Android4.2中Gallery2源码移植

    最近开始做Android平台下的相机开发,有别于驱动层和HAL层,我更多的是关注成像画质和虚拟预览等上层应用,整理了一点心得,感觉有必要记录一下成长的足迹.因为初学,不保证理解精准到位,请各位看官们坚 ...

  8. Android系统开发(移植)和应用开发

    Android是个开源的操作系统,所以可以选择的开发方式主要有两种: Android系统开发(移植): Android应用开发 1.Android系统开发(移植) Android系统开发(移植)属于底 ...

  9. 【国产MCU移植】移植RT-Thread到国产芯片HC32L196

    大家好我是惊觉.是的,失踪人口回来了.最近参加了rt-thread的国产MCU移植活动,移植rt-thread到华大的HC32L196.rtt论坛中已有许多介绍移植到各种平台的文章,详细讲述移植步骤, ...

最新文章

  1. 皮一皮:经历过的举手报道...
  2. IconFont的使用方法
  3. 湖南大学计算机学院张柏杨,缪力-湖大信息科学与工程学院
  4. 哨兵一号数据snap预处理_利用SNAP软件进行Sentinel-1A卫星微波影像的预处理
  5. python开发的系统有哪些_Python web开发=几个模板系统的性能对比
  6. jquery 页面滚动条回到顶部_jquery懒加载、回到顶部
  7. 《构建之法》读书心得
  8. oracle中如何测试,Oracle数据库中如何正确的查看sql
  9. asus官方android升级包,华硕ASUS手机平板官方刷机包raw格式解压修改工具
  10. 笔记|使用边框和背景(应用边框样式)
  11. 计算机的音标英语怎么说,computer是什么意思_computer的翻译_音标_读音_用法_例句_爱词霸在线词典...
  12. RestTemplate使用实战-exchange方法讲解
  13. 游戏模型制作的注意事项 项目模型规范总结
  14. windows无法连接到打印机_解决打印机问题
  15. 智力题:1000瓶酒.10只老鼠.有一瓶酒有毒,每只老鼠可以喝无限多的酒,如何测一次就找出哪瓶酒有毒
  16. 话题|寒窗苦读还是花花世界,你会怎么选?
  17. 非计算机专业学生怎么走上计算机技术之路?
  18. 软件测试基础-Web前端(二)
  19. C/C++ 延时函数 (标准库)
  20. 洛谷P1758 [NOI2009]管道取珠(dp 贡献转化)

热门文章

  1. spring 操作对象写入mongo去除_class列
  2. InfoWorld 2020 年公布最佳开源软件
  3. html5 viewpor,FileViewPro
  4. 重庆理工大学图像处理实验三:图像分割
  5. 头的各个部位示意图_图解圆锥破碎机润滑油路,7个主要润滑部位特点分析
  6. LINUX类主机JAVA应用程序占用CPU、内存过高分析手段
  7. 使用android日志工具
  8. 来自 119.*.*.*的回复: TTL 传输中过期
  9. ansys 常用结构单元类型
  10. HDU2833 最短路 floyd