static int _devinit si4709_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { int err = 0; struct si4709_data *si4709_dev; debug("----- %s %d\n", __func__, __LINE__); si4709_dev = kzalloc(sizeof(struct si4709_data), GFP_KERNEL); if(!si4709_dev) { err = -ENOMEM; return err; } Si4709_i2c_client = client; i2c_set_clientdata(client, si4709_dev); if(Si4709_i2c_client == NULL) { error("Si4709 i2c_client is NULL"); return -ENODEV; } Si4709_probe(Si4709_i2c_client); return 0; }
static int si4709_i2c_probe(struct i2c_adapter *adapter, int address, int kind) { int err = 0; printk("----- %s %d\n", __func__, __LINE__); Si4709_i2c_client.addr = address; Si4709_i2c_client.adapter = adapter; Si4709_i2c_client.driver = &Si4709_i2c_driver; if ((err = i2c_attach_client(&Si4709_i2c_client))) return err; Si4709_probe(&Si4709_i2c_client); return 0; }