Lines Matching refs:data
138 struct max6650_data *data = dev_get_drvdata(dev); in max6650_update_device() local
139 struct i2c_client *client = data->client; in max6650_update_device()
142 mutex_lock(&data->update_lock); in max6650_update_device()
144 if (time_after(jiffies, data->last_updated + HZ) || !data->valid) { in max6650_update_device()
145 data->speed = i2c_smbus_read_byte_data(client, in max6650_update_device()
147 data->config = i2c_smbus_read_byte_data(client, in max6650_update_device()
149 for (i = 0; i < data->nr_fans; i++) { in max6650_update_device()
150 data->tach[i] = i2c_smbus_read_byte_data(client, in max6650_update_device()
153 data->count = i2c_smbus_read_byte_data(client, in max6650_update_device()
155 data->dac = i2c_smbus_read_byte_data(client, MAX6650_REG_DAC); in max6650_update_device()
162 data->alarm |= i2c_smbus_read_byte_data(client, in max6650_update_device()
165 data->last_updated = jiffies; in max6650_update_device()
166 data->valid = 1; in max6650_update_device()
169 mutex_unlock(&data->update_lock); in max6650_update_device()
171 return data; in max6650_update_device()
178 struct max6650_data *data = max6650_update_device(dev); in get_fan() local
190 rpm = ((data->tach[attr->index] * 120) / DIV_FROM_REG(data->count)); in get_fan()
238 struct max6650_data *data = max6650_update_device(dev); in get_target() local
249 kscale = DIV_FROM_REG(data->config); in get_target()
250 ktach = data->speed; in get_target()
258 struct max6650_data *data = dev_get_drvdata(dev); in set_target() local
259 struct i2c_client *client = data->client; in set_target()
277 mutex_lock(&data->update_lock); in set_target()
279 kscale = DIV_FROM_REG(data->config); in set_target()
285 data->speed = ktach; in set_target()
287 i2c_smbus_write_byte_data(client, MAX6650_REG_SPEED, data->speed); in set_target()
289 mutex_unlock(&data->update_lock); in set_target()
307 struct max6650_data *data = max6650_update_device(dev); in get_pwm() local
313 if (data->config & MAX6650_CFG_V12) in get_pwm()
314 pwm = 255 - (255 * (int)data->dac)/180; in get_pwm()
316 pwm = 255 - (255 * (int)data->dac)/76; in get_pwm()
327 struct max6650_data *data = dev_get_drvdata(dev); in set_pwm() local
328 struct i2c_client *client = data->client; in set_pwm()
338 mutex_lock(&data->update_lock); in set_pwm()
340 if (data->config & MAX6650_CFG_V12) in set_pwm()
341 data->dac = 180 - (180 * pwm)/255; in set_pwm()
343 data->dac = 76 - (76 * pwm)/255; in set_pwm()
345 i2c_smbus_write_byte_data(client, MAX6650_REG_DAC, data->dac); in set_pwm()
347 mutex_unlock(&data->update_lock); in set_pwm()
363 struct max6650_data *data = max6650_update_device(dev); in get_enable() local
364 int mode = (data->config & MAX6650_CFG_MODE_MASK) >> 4; in get_enable()
373 struct max6650_data *data = dev_get_drvdata(dev); in set_enable() local
374 struct i2c_client *client = data->client; in set_enable()
386 mutex_lock(&data->update_lock); in set_enable()
388 data->config = i2c_smbus_read_byte_data(client, MAX6650_REG_CONFIG); in set_enable()
389 data->config = (data->config & ~MAX6650_CFG_MODE_MASK) in set_enable()
392 i2c_smbus_write_byte_data(client, MAX6650_REG_CONFIG, data->config); in set_enable()
394 mutex_unlock(&data->update_lock); in set_enable()
415 struct max6650_data *data = max6650_update_device(dev); in get_div() local
417 return sprintf(buf, "%d\n", DIV_FROM_REG(data->count)); in get_div()
423 struct max6650_data *data = dev_get_drvdata(dev); in set_div() local
424 struct i2c_client *client = data->client; in set_div()
432 mutex_lock(&data->update_lock); in set_div()
435 data->count = 0; in set_div()
438 data->count = 1; in set_div()
441 data->count = 2; in set_div()
444 data->count = 3; in set_div()
447 mutex_unlock(&data->update_lock); in set_div()
451 i2c_smbus_write_byte_data(client, MAX6650_REG_COUNT, data->count); in set_div()
452 mutex_unlock(&data->update_lock); in set_div()
468 struct max6650_data *data = max6650_update_device(dev); in get_alarm() local
469 struct i2c_client *client = data->client; in get_alarm()
472 if (data->alarm & attr->index) { in get_alarm()
473 mutex_lock(&data->update_lock); in get_alarm()
475 data->alarm &= ~attr->index; in get_alarm()
476 data->alarm |= i2c_smbus_read_byte_data(client, in get_alarm()
478 mutex_unlock(&data->update_lock); in get_alarm()
507 struct max6650_data *data = dev_get_drvdata(dev); in max6650_attrs_visible() local
508 struct i2c_client *client = data->client; in max6650_attrs_visible()
563 static int max6650_init_client(struct max6650_data *data, in max6650_init_client() argument
644 data->config = config; in max6650_init_client()
645 data->count = i2c_smbus_read_byte_data(client, MAX6650_REG_COUNT); in max6650_init_client()
654 struct max6650_data *data; in max6650_probe() local
658 data = devm_kzalloc(dev, sizeof(struct max6650_data), GFP_KERNEL); in max6650_probe()
659 if (!data) in max6650_probe()
662 data->client = client; in max6650_probe()
663 mutex_init(&data->update_lock); in max6650_probe()
664 data->nr_fans = id->driver_data; in max6650_probe()
669 err = max6650_init_client(data, client); in max6650_probe()
673 data->groups[0] = &max6650_group; in max6650_probe()
675 if (data->nr_fans == 4) in max6650_probe()
676 data->groups[1] = &max6651_group; in max6650_probe()
679 client->name, data, in max6650_probe()
680 data->groups); in max6650_probe()