I2C 注册 的 注册

  
static const struct i2c_device_id * i2c_match_id (const struct i2c_device_id * id, const struct i2c_client cliente) while while (id- > nombre [0]) {if (strcmp (client- > nombre, id.; name) == 0) //比较 名字 return id; id ++;} return NULL;} static int i2c_device_match (struct device * dev, struct device_driver * drv) {struct i2c_client * client = i2c_verify_client (dev); struct i2c_driver * driver; if (! client) devuelve 0; driver = to_i2c_driver (drv); /* coincide en una tabla de id si hay uno * /if (driver- > id_table) //id_table 的 设备 的 设备 的 id 表return i2c_match_id
(driver- > id_table, cliente)! = NULL; return 0;} static int i2c_device_probe (struct device * dev) {struct i2c_client * client = i2c_verify_client (dev); struct i2c_driver * driver; driver = to_i2c_driver (dev- > driver); ..... status = driver- > probe
(cliente, i2c_match_id (driver- > id_table, client)); //sonda ... } struct bus_type i2c_bus_type
= {.name = " i2c
". i2c_device_suspend, .resume = i2c_device_resume,}; static int __init i2c_init (void) {int retval; retval = bus_register
(& i2c_bus_type
); if (retval) devuelve retval; #ifdef CONFIG_I2C_COMPATi2c_adapter_compapter_compat_class = class_compac_register (" i2c-adapter "); if. -ENOMEM; goto bus_err;} # endifretval = i2c_add_driver
(&dummy_driver); //虚拟 的 驱动 if (retval) goto class_err; return 0;} /* Debemos inicializar pronto, porque algunos subsistemas se registran Controladores i2c * en el código subsys_initcall (), pero están vinculados (e inicializados) antes de i2c. * / postcore_initcall
(i2c_init);


en"],null,[0.98541451],en"]]]

Copyright © Conocimiento de Windows All Rights Reserved