明远智睿技术论坛

 找回密码
 立即注册
搜索
查看: 3173|回复: 1
打印 上一主题 下一主题

触摸屏tsc2007驱动移植(Android5.1系统)

[复制链接]

2

主题

3

帖子

36

积分

新手上路

Rank: 1

积分
36
跳转到指定楼层
楼主
发表于 2017-12-14 16:22:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 myzr007 于 2017-12-14 16:22 编辑

问题描述:增加tsc2007设备树相关信息后,编译tsc2007驱动,pdata数据为0 。


硬件环境:boot-myimx6ek200-6u开发板
软件环境:myzr官方Android5.1镜像。

移植步骤:
第一步:增加设备树:
将原先ft5x06触摸屏的设备信息替换为tsc2007的信息

/*

        focaltech@38 {

                compatible ="focaltech,5x06";

                reg = <0x38>;

                pinctrl-names ="default";

                pinctrl-0 =<&pinctrl_myts_ft5x0x>;

                interrupt-parent =<&gpio6>;

                interrupts = <16 0x0>;

                focaltech,reset-gpio =<&gpio1 17 GPIO_ACTIVE_LOW>;

                   focaltech,irq-gpio = <&gpio6 16GPIO_ACTIVE_LOW>;

                linux,wakeup;

        };*/

仿照ft56改写设备树,

        focaltech@48 {

                compatible ="tsc2007";

                reg = <0x48>;

                pinctrl-names ="default";

                pinctrl-0 =<&pinctrl_myts_ft5x0x>;

                interrupt-parent =<&gpio6>;

                interrupts = <16 0x0>;

                focaltech,reset-gpio =<&gpio1 17 GPIO_ACTIVE_LOW>;

                   focaltech,irq-gpio= <&gpio6 16 GPIO_ACTIVE_LOW>;

                linux,wakeup;

       };

};

第二步:将drivers/input/touchscreen/目录下的tsc2007.c驱动保持源码不变,
make menuconfig,将tsc2007编译为模块,其余选项全部取消,重新编译镜像。

第三步:重新启动后,通过cat命令后有设备信息
root@sabresd_6dq:/data/local/tmp # cat /sys/bus/i2c/devices/2-0048/name        
tsc2007
但是insmod tsc2007.ko驱动打印信息为。
tsc2007_probe                          
tsc2007 2-0048: missing ti,x-plate-ohms devicetree property.
tsc2007: probe of 2-0048 failed with error -22
查看tsc2007.c驱动源码,原因为*pdata 指针为空,
static int tsc2007_probe(struct i2c_client *client,
    const struct i2c_device_id *id)
{
const struct tsc2007_platform_data *pdata = dev_get_platdata(&client->dev);
struct tsc2007 *ts;
struct input_dev *input_dev;
int err;
printk("tsc2007_probe\n");
if (!i2c_check_functionality(client->adapter,
         I2C_FUNC_SMBUS_READ_WORD_DATA))
  return -EIO;
ts = devm_kzalloc(&client->dev, sizeof(struct tsc2007), GFP_KERNEL);
if (!ts)
  return -ENOMEM;
if (pdata)
  err = tsc2007_probe_pdev(client, ts, pdata, id);
else
  err = tsc2007_probe_dt(client, ts);
if (err)
  return err;

1)*pdata 指针为空,是我设备树添加的信息还不够完善吗?还是其它方面我少了那些步骤。
2)硬件连接是没有问题的,因为我在同样的硬件环境下,在系统Android4.4上触摸屏是可以用的。




回复

使用道具 举报

36

主题

745

帖子

2872

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2872
沙发
发表于 2017-12-18 10:37:05 | 只看该作者
ti,x-plate-ohms = <180>;
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|明远智睿  

GMT+8, 2024-5-4 04:43 , Processed in 0.058946 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表