触摸屏移植

本文设备使用触摸屏为 FT6336U 芯片

1 内核配置

内核需要打开对应驱动,这里恰好有该芯片驱动文件。
drivers/input/touchscreen/focaltech_touch/

Device Drivers → Input device support → Touchscreens : CONFIG_TOUCHSCREEN_FTS

需要注意:该驱动有自动升级的功能,最好前期就关闭它。
我最彻底,直接把代码升级部分全都注释掉。否则屏幕可能需要返厂维修。

2 DTS配置

电路图中
在这里插入图片描述
](https://img-blog.csdnimg.cn/3f00ba1ea8c846bbbc60aac4e0ffb8d4.png)
该触摸屏使用的是I2C-1接口。

i2c1@1{
            compatible = "sstar,i2c";
            reg = <0x1F223200 0x200>,<0x1F203c00 0x200>,<0x1F207000 0x200>;
                #address-cells = <1>;
                #size-cells = <0>;
            clocks = <&CLK_miic1>;
            i2c-group = <1>;
            /*
             * padmux: 1 -> PAD_GPIO2, PAD_GPIO3
             *         2 -> PAD_HDMITX_SCL, PAD_HDMITX_SDA
             *         4 -> PAD_TTL22, PAD_TTL23
             *         5 -> PAD_SD_CLK, PAD_SD_CMD
            */
            i2c-padmux = <1>;
            /*
              *  speed: 0 -> HWI2C_HIGH(high speed: 400 KHz)
              *         1 -> HWI2C_NORMAL(normal speed: 300 KHz)
              *         2 -> HWI2C_SLOW(slow speed: 200 KHz)
              *         3 -> HWI2C_VSLOW(very slow: 100 KHz)
              *         4 -> HWI2C_USLOW(ultra slow: 50 KHz)
              *         5 -> HWI2C_UVSLOW(ultra-very slow: 25 KHz)
              */
            i2c-speed = <3>;
            i2c-en-dma = <0>;  // 0: disable; 1: enable;
            status = "ok";

            focaltech@48{
                compatible = "focaltech,fts"; // do not modify
                reg = <0x48>; // do not modify
                interrupts-extended = <&ms_gpi_intc INT_GPI_FIQ_GPIO0>;
                focaltech,reset-gpio = <PAD_GPIO1>; // RST脚
                focaltech,irq-gpio = <PAD_GPIO0>; // INT脚
                focaltech,max-touch-number = <3>; // 最大触点数
                focaltech,display-coords = <0 0 720 720>; // 分辨率
                interrupt-names = "focaltech_int";
            };

        };

注意:依据芯片官方文档I2c地址应该是 0x38,不过不知道怎么,该屏幕售后说需要使用0x48.

3 测试

cat /dev/input/event0

./tp_test

GET: type 3 code: 39 value:14
GET: type 3 code: 35 value:90
GET: type 3 code: 36 value:71
GET: type 1
GET: type 0
GET: type 3 code: 39 value:-1

### 回答1: FT6336U是一款触摸屏控制器芯片,用于实现电子设备的触摸功能。它具有一些寄存器,用于控制和配置其各种功能。 首先,FT6336U有一个配置寄存器,可以用来设置控制器的工作模式和参数。通过写入不同的值到配置寄存器,可以实现不同的触摸模式,如单触摸、多触摸、手势识别等。 其次,FT6336U内置了一组用于存储触摸坐标的寄存器。当用户触摸屏幕时,触摸控制器会将触摸坐标信息写入这些寄存器中,应用程序可以读取这些寄存器来获取用户的触摸位置。 此外,FT6336U还有一些用于配置报警功能的寄存器。通过设置这些寄存器,可以实现当触摸状态变化时的报警功能,例如当有触摸产生或者触摸离开时触发报警。 最后,FT6336U还包含一些用于控制触摸扫描频率和灵敏度的寄存器。通过调整这些寄存器的值,可以实现不同的触摸扫描速度和灵敏度,以满足不同应用场景的需求。 总之,FT6336U的寄存器用于控制和配置触摸屏控制器的各种功能和参数,使得设备能够实现准确、敏感的触摸操作,并提供了一些额外的功能,如报警和手势识别等。 ### 回答2: FT6336U是一款触摸屏控制器芯片,广泛应用于手机、平板电脑以及一些智能设备中。该芯片内部包含了多个寄存器,用于配置和控制触摸屏的各项功能。 FT6336U的寄存器主要包括: 1. 控制寄存器:用于配置和控制触摸屏的模式、工作状态、触摸检测的阈值等参数。 2. 坐标寄存器:用于存储触摸点的坐标信息,包括触摸点的x坐标和y坐标。 3. 手势寄存器:用于识别触摸屏上的手势操作,如点击、滑动等,通过读取手势寄存器中的信息可以实现对不同手势的响应和处理。 4. 感应寄存器:用于检测触摸屏的触摸力度,通过读取感应寄存器可以获取触摸点的压力信息,实现一些特殊的触摸操作,如按压、放大缩小等。 5. ID寄存器:用于存储触摸屏控制器芯片的唯一识别ID,可以用来区分不同的触摸屏设备。 通过对FT6336U的寄存器进行配置和读取,可以实现对触摸屏的各项功能的调控和控制。同时,可以通过与其他硬件设备的连接,实现更丰富的触摸交互效果和功能,满足不同应用场景的需求。 总之,FT6336U寄存器是触摸屏控制器芯片内部的存储单元,通过配置和读取寄存器中的参数和信息,可以控制和调节触摸屏的各项功能,实现更好的触摸交互体验。 ### 回答3: ft6336u 寄存器是指FT6336U芯片中内部的寄存器。FT6336U是一款触摸屏控制器芯片,内部包含多个寄存器用于存储和管理各种控制和配置信息。 寄存器是计算机硬件中的一种存储设备,用于存储指令和数据。在FT6336U芯片中,寄存器用来存储触摸屏控制器的各种参数和状态信息。这些寄存器可以通过特定的地址来访问和修改。 FT6336U寄存器的作用包括但不限于以下几个方面: 1. 控制寄存器:用于设置和控制FT6336U的工作模式、扫描频率、触摸灵敏度等参数。通过修改控制寄存器的值,可以实现不同的操作模式和效果。 2. 数据寄存器:用于存储触摸屏传感器采集到的原始触摸数据。包括触摸点的坐标、压力、面积等信息。这些数据可以被处理后用于实现多点触控功能。 3. 状态寄存器:用于记录当前触摸屏控制器的状态,如是否有触摸事件发生、触摸点的数量等。通过读取状态寄存器的值,可以判断触摸屏当前的状态。 4. 校准寄存器:用于存储触摸屏的校准参数。触摸屏需要进行校准以确保准确的触摸操作,校准寄存器中存储了校准后的参数。 总之,FT6336U 寄存器是FT6336U芯片中存储和管理各种控制和配置信息的设备。通过对这些寄存器的设置和读取,可以实现触摸屏控制器的各种功能和操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值