1. debug
#define dbg(fmt,arg...) printf("function:%s line:%d "fmt,__FUNCTION__,__LINE__,##arg)
2. i2c 驱动注册
#define DEV_NAME "name"
#define DEV_ADDR (xx)
#define I2C_BUS_D (x)
static struct i2c_driver pn544_driver = {
.id_table = pn544_id,
.probe = pn544_probe,
.remove = pn544_remove,
.shutdown = pn544_shutdown,
.driver = {
.owner = THIS_MODULE,
.name = DEV_NAME ,
},
};
static int __init pdev_init(void)
{
struct i2c_board_info board_info;
struct i2c_adapter *adapter;
struct i2c_client *i2c_client;
adapter = i2c_get_adapterI2C_BUS_D);
if (!adapter) {
pr_info("warnning£ºfail get adapter!\n");
return 0;
}
platform_data pdata = kzalloc(sizeof(struct platform_data), GFP_KERNEL);
memset(&board_info, 0, sizeof(board_info));
strncpy(board_info.type, DEV_NAME, I2C_NAME_SIZE);
board_info.addr = DEV_ADDR;
board_info.platform_data = (pdata);
pr_info("%s: adapter = %p\n", DEV_NAME, adapter);
i2c_client = i2c_new_device(adapter, &board_info);
return i2c_add_driver(&driver);
}