编写I2C外设驱动步骤
- 注册I2C设备,一般在板级文件中,定义i2c_board_info
- 注册I2C驱动:i2c_register_driver,i2c_del_driver
- 利用i2c_client中的addr(设备地址)和adapter(主机驱动)实现I2C数据传输:填充i2c_msg并调用i2c_transfer
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/gpio.h>
#include <plat/gpio-cfg.h>
#include <mach/gpio.h>
#define DRIVER_NAME "i2c_test"
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("colorfulshark@hotmail.com");
static void i2c_io_init(void);
static struct i2c_device_id i2c_test_id_table[] = {
{
"i2c_test", 0},
{},
};
static int i2c_test_probe(struct i2c_client *client, const struct i2c_device_id *id);