static int apds9802als_runtime_resume(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); als_set_power_state(client, true); return 0; }
static int apds9802als_runtime_suspend(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); als_set_power_state(client, false); return 0; }
static int __devexit apds9802als_remove(struct i2c_client *client) { struct als_data *data = i2c_get_clientdata(client); pm_runtime_get_sync(&client->dev); als_set_power_state(client, false); sysfs_remove_group(&client->dev.kobj, &m_als_gr); pm_runtime_disable(&client->dev); pm_runtime_set_suspended(&client->dev); pm_runtime_put_noidle(&client->dev); kfree(data); return 0; }
static int isl29020_probe(struct i2c_client *client, const struct i2c_device_id *id) { int res; res = als_set_default_config(client); if (res < 0) return res; res = sysfs_create_group(&client->dev.kobj, &m_als_gr); if (res) { dev_err(&client->dev, "isl29020: device create file failed\n"); return res; } dev_info(&client->dev, "%s isl29020: ALS chip found\n", client->name); als_set_power_state(client, 0); pm_runtime_enable(&client->dev); return res; }
static int isl29020_runtime_resume(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); als_set_power_state(client, 1); return 0; }
static int apds9802als_suspend(struct i2c_client *client, pm_message_t mesg) { als_set_power_state(client, false); return 0; }