S5pc100 的linux 触摸屏驱动移植(linux 2.6.35.13内核)

 

 

1、修改driver/input/touchscreen/Kconfig

修改:

config TOUCHSCREEN_S3C2410
        tristate "Samsung S3C2410/generic touchscreen input driver"
        depends on ARCH_S3C2410 || SAMSUNG_DEV_TS
        select S3C_ADC

为:

config TOUCHSCREEN_S3C2410
        tristate "Samsung S3C2410/generic touchscreen input driver"
        depends on ARCH_S3C2410 || SAMSUNG_DEV_TS || ARCH_S5PC100
        select S3C_ADC

2、修改arch/arm/mach-s5pc100/include/mach/map.h

添加如下内容:

#define SAMSUNG_PA_ADC (0xF3000000)

3、修改arch/arm/plat-samsung/Kconfig

修改:

config SAMSUNG_DEV_ADC
        bool
        help
                Compile in platform device definition for ADC controller
        config SAMSUNG_DEV_TS
        bool
        help
                Common in platform device definitions for touchscreen device

为:

config SAMSUNG_DEV_ADC
        bool
        default y
        help
                Compile in platform device definition for ADC controller
        config SAMSUNG_DEV_TS
        bool
        default y
        help
                Common in platform device definitions for touchscreen device

4、修改arch/arm/plat-samsung/adc.c

修改:

staticstructplatform_device_id s3c_adc_driver_ids[] = {
        {
        .name = "s3c24xx-adc",
        .driver_data = TYPE_S3C24XX,
        }, {
        .name = "s3c64xx-adc",
        .driver_data = TYPE_S3C64XX,
        },
        {}
        };

为:

staticstructplatform_device_id s3c_adc_driver_ids[] = {
        {
        .name = "s3c24xx-adc",
        .driver_data = TYPE_S3C24XX,
        }, {
        .name = "s3c64xx-adc",
        .driver_data = TYPE_S3C64XX,
        },{
        .name = "samsung-adc"
        .driver_data = TYPE_S3C64XX,
        },
        {}
        };

5、修改driver/input/touchscreen/s3c2410_ts.c

在:

input_report_key(ts.input, BTN_TOUCH, 1);

下添加:

input_report_abs(ts.input, ABS_PRESSURE, 1);

在:

input_report_key(ts.input, BTN_TOUCH, 0);

下添加:

input_report_abs(ts.input, ABS_PRESSURE, 0);

在:

input_set_abs_params(ts.input, ABS_Y, 0, 0x3FF, 0, 0);

下添加:

input_set_abs_params(ts.input, ABS_PRESSURE, 0, 1, 0, 0);

6、修改arch/arm/mach-s5pc100/mach-smdkc100.c

添加头文件:

#if defined(CONFIG_TOUCHSCREEN_S3C2410)
        #include <plat/ts.h>
        #endif

添加平台数据:

#if defined(CONFIG_TOUCHSCREEN_S3C2410)
        staticstruct s3c2410_ts_mach_info s5pc100_ts_cfg __initdata = {
                .delay = 20000,
                .presc = 49,
                .oversampling_shift = 2,
        };
        #endif

添加平台设备:

在结构体数组:

staticstructplatform_device *smdkc100_devices[] __initdata = {
                ……
                ……
         };

中添加如下内容:

#if defined(CONFIG_TOUCHSCREEN_S3C2410)
                &s3c_device_adc,
                &s3c_device_ts,
        #endif

在函数:

static void __init smdkc100_machine_init(void)
        {
                ……
        }

中添加如下内容:

#if defined(CONFIG_TOUCHSCREEN_S3C2410)
                s3c24xx_ts_set_platdata(&s5pc100_ts_cfg);
        #endif

7、配置内核

$ make menuconfig
        Device Drivers --->
                Input device support --->
                        <*> Event interface
                        [*] Touchscreens --->
                                <*> Samsung S3C2410/generic touchscreen input driver

8、编译内核并拷贝到tftpboot

$ make zImage
        $ cp arch/arm/boot/zImage /tftpboo

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值