I2Cネットワークの登録

  
static const struct i2c_device_id * i2c_match_id(const struct i2c_device_id * id){while(id-> name [0]){if(strcmp(client-> name、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)は0を返す; driver = to_i2c_driver(drv); /* idテーブルがある場合はidテーブルに一致* /if(driver-> id_table)//id_tableこれはドライバがサポートするデバイスのIDテーブルreturn i2c_match_id
(driver-> id_table、client)!= 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 = ドライバ - > probe
(クライアント、i2c_match_id(ドライバ - > id_table、client)); //probe ... struct bus_type i2c_bus_type
= {.name =" i2c""、match = i2c_device_match、.probe = i2c_device_probe、.remove = i2c_device_remove、.shutdown = i2c_device_shutdown、.suspend = i2c_device_suspend、.resume = i2c_device_resume、}; static int __init i2c_init(void){int retval;}。 retval = bus_register
(& b i2c_bus_type
); if(retval)return retval; #ifdef CONFIG_I2C_COMPATi2c_adapter_compat_class = class_compat_register(" i2c-adapter"); if(!i2c_adapter_compat_class)いくつかのサブシステムが登録するので、初期化しなければならないので、初期化する必要があります。-ENOMEM; goto bus_err;}#endifretval = i2c_add_driver
(& dummy_driver); //if(retval)goto class_err; return 0;} /* subsys_initcall()コード内のi2cドライバ*、ただしi2cの前にリンク(および初期化)されています。* / postcore_initcall
(i2c_init);


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

Copyright © Windowsの知識 All Rights Reserved