嵌入式linux——i2c驱动

2019-05-28  本文已影响0人  锋之律
xxx_init()
{
    i2c_add_driver();    // struct i2c_driver -> xxx_probe、xxx_remove、of_match_table(dts) 
}

xxx_exit()
{
    i2c_del_driver();    // struct i2c_driver
}

以下与platform驱动一样

xxx_probe()
{
    alloc_chrdev_region();  // 申请设备号
    cdev_init();    // 初始化字符设备,struct file_operations -> xxx_read、xxx_write、xxx_ioctl
    cdev_add();   // 添加设备到内核
    // 创建类和设备节点
    class_create();
    device_create();
}

xxx_ioctl();
xxx_read()
{
    copy_to_user();
}
xxx_write()
{
    copy_from_user();
}

xxx_remove()
{
    device_destroy();
    class_destroy();
    cdev_del();
    unregister_chrdev_region();
}
上一篇下一篇

猜你喜欢

热点阅读