int i2c_add_driver(struct i2c_driver *driver); void i2c_del_driver(struct i2c_driver *driver); //发送接收消息 int i2c_master_send(const struct i2c_client *client, const char *buf, int count); int i2c_master_recv(const struct i2c_client *client, char *buf, int count); struct i2c_cl...
+/* i2c device name is "i2c_ts", address is 0x5c, interrupt is eint20 */ +static struct i2c_board_info touchscreen_i2c_devs[] __initdata = { + { + I2C_BOARD_INFO("i2c-ts", 0x5c), + .irq = IRQ_EINT20, + }, +}; ... static void __init mini2440_machine_init(void) {...
针对I2C总线,也有一个I2C总线的结构即i2c_bus_type结构,此结构里面也有设备链表和也有驱动链表。设备链表里存放i2c_client的结构体,这些结构体是注册i2c_client时加入的,不但要加入这些结构体,还会在总线的驱动链表中一个一个地比较drv即i2c_driver来判断是否有匹配的,如果有将调用drv里面的probe函数,匹配函数由总线...
s32 i2c_smbus_read_i2c_block_data(const struct i2c_client *client,u8 command, u8 length, u8 *values); //写入多个数据函数,成功返回0,注意,改函数最大多32字节 s32 i2c_smbus_write_i2c_block_data(const struct i2c_client *client,u8 command, u8 length,const u8 *values); 3.电容屏ft5x06驱...
Linux下IIC子系统和触摸屏驱动 1.IIC简介 I2C( Inter-Integrated Circuit)总线是由 PHILIPS 公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。
一、Linux电容触摸屏驱动框架 电容触摸驱动的基本原理可参考Linux裸机开发|电容触摸屏实验一文。电容触摸 IC 基本都是 I2C 接口的,因此大框架就是 I2C 设备驱动;通过中断引脚(INT)向内核上报触摸信息,因此需要用到中断驱动框架;触摸屏的坐标信息、屏幕按下和抬起信息都属于 input 子系统,因此需要使用...
2、i2c_algorithm:函数指针集,钩子函数,用于描述特定 SoC 硬件的 IIC 模块产生通信波形的方法3、i2c_client:描述一个挂接到 IIC 总线上的具体物理设备4、i2c_driver:用于描述一个 IIC 设备的驱动 有了抽象出来的数据结构后,在结合 Linux 设备驱动的框架(Bus、Device、Driver),我们来看看在软件层次上,每个层次与...
简介:基于瑞芯微RV1109 Linux触摸屏GT911驱动调试心得 1、确定I2C地址 1.1、使用i2cdetect工具查看系统i2c节点的情况 很明显这里可以看到系统已经配置了i2c-0、i2c-1、i2c-3、i2c-4、i2c-5,我们可以看下原厂在设备树里面的支持情况: gedit kernel/arch/arm/boot/dts/rv1126.dtsi & ...
当开机的时候系统已经将相应的I2C节点注册成功了,说明I2C部分是没有问题的。 1.2、使用i2cdetect工具确定设备地址 由于我的触摸屏是连接在I2C5上,硬件原理图如下所示: 但是我还没有实现它的驱动,所以可以通过i2cdetect工具来确定设备的I2C地址是多少,ARM端执行以下命令: ...