Beispiel #1
0
static int __devinit nct1008_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
	struct nct1008_data *data;
/*[ECID:000000] ZTEBSP wangbing 20111020, add temperature sense driver */
	struct nct1008_platform_data *pdata = client->dev.platform_data;  
	int err;

    printk(KERN_ERR"nct1008_probe\n"); 

	data = kzalloc(sizeof(struct nct1008_data), GFP_KERNEL);

	if (!data)
		return -ENOMEM;

	data->client = client;
	i2c_set_clientdata(client, data);
	mutex_init(&data->mutex);

/*[ECID:000000] ZTEBSP wangbing 20111020, add temperature sense driver */
	if ( pdata->power_on )   
		pdata->power_on() ; 
	
	err = nct1008_configure_sensor(data);	/* sensor is in standby */
	if (err < 0)
		goto error;

	err = nct1008_configure_irq(data);
	if (err < 0)
		goto error;

	/* register sysfs hooks */
	err = sysfs_create_group(&client->dev.kobj, &nct1008_attr_group);
	if (err < 0)
		goto error;

	dev_info(&client->dev, "%s: initialized\n", __func__);

/*wangbing, for thermal sensor shutdown, 20111105 */
	nct1008_i2c_client = client;

	nct1008_enable(client);		/* sensor is running */

	schedule_work(&data->work);		/* check initial state */

	return 0;

error:
	kfree(data);
	return err;
}
static int __devinit nct1008_probe(struct i2c_client *client, const struct i2c_device_id *id)
{
	struct nct1008_data *data;
	int err;

	data = kzalloc(sizeof(struct nct1008_data), GFP_KERNEL);

	if (!data)
		return -ENOMEM;

	
	
	nct1008_data_p = data;
	

	data->client = client;
	i2c_set_clientdata(client, data);
	mutex_init(&data->mutex);

	err = nct1008_configure_sensor(data);	/* sensor is in standby */
	if (err < 0)
		goto error;

	err = nct1008_configure_irq(data);
	if (err < 0)
		goto error;

	/* register sysfs hooks */
	err = sysfs_create_group(&client->dev.kobj, &nct1008_attr_group);
	if (err < 0)
		goto error;

	dev_info(&client->dev, "%s: initialized\n", __func__);

	nct1008_enable(client);		/* sensor is running */

	schedule_work(&data->work);		/* check initial state */

	return 0;

error:
	kfree(data);
	return err;
}