Lines Matching refs:data
99 * Client data (each client gets its own)
130 .data = (void *)1
134 .data = (void *)4
158 struct max6650_data *data = dev_get_drvdata(dev);
159 struct i2c_client *client = data->client;
163 mutex_lock(&data->update_lock);
165 if (time_after(jiffies, data->last_updated + HZ) || !data->valid) {
166 for (i = 0; i < data->nr_fans; i++) {
172 data->tach[i] = reg;
185 data->alarm |= reg;
186 data->last_updated = jiffies;
187 data->valid = true;
191 mutex_unlock(&data->update_lock);
193 data = ERR_PTR(err);
194 return data;
201 static int max6650_set_operating_mode(struct max6650_data *data, u8 mode)
204 u8 config = data->config;
211 result = i2c_smbus_write_byte_data(data->client, MAX6650_REG_CONFIG,
216 data->config = config;
262 static int max6650_set_target(struct max6650_data *data, unsigned long rpm)
267 return max6650_set_operating_mode(data, MAX6650_CFG_MODE_OFF);
278 kscale = DIV_FROM_REG(data->config);
284 data->speed = ktach;
286 return i2c_smbus_write_byte_data(data->client, MAX6650_REG_SPEED,
287 data->speed);
301 struct max6650_data *data = max6650_update_device(dev);
304 if (IS_ERR(data))
305 return PTR_ERR(data);
307 alarm = data->alarm & attr->index;
309 mutex_lock(&data->update_lock);
310 data->alarm &= ~attr->index;
311 data->valid = false;
312 mutex_unlock(&data->update_lock);
325 struct max6650_data *data = dev_get_drvdata(dev);
335 if (!(data->alarm_en & to_sensor_dev_attr(devattr)->index))
358 static int max6650_init_client(struct max6650_data *data,
431 data->config = reg;
438 data->speed = reg;
445 data->dac = reg;
452 data->count = reg;
459 data->alarm_en = reg;
463 max6650_set_target(data, target_rpm);
464 max6650_set_operating_mode(data, MAX6650_CFG_MODE_CLOSED_LOOP);
481 struct max6650_data *data = cdev->devdata;
483 *state = data->cooling_dev_state;
491 struct max6650_data *data = cdev->devdata;
492 struct i2c_client *client = data->client;
497 mutex_lock(&data->update_lock);
499 data->dac = pwm_to_dac(state, data->config & MAX6650_CFG_V12);
500 err = i2c_smbus_write_byte_data(client, MAX6650_REG_DAC, data->dac);
502 max6650_set_operating_mode(data, state ?
505 data->cooling_dev_state = state;
508 mutex_unlock(&data->update_lock);
522 struct max6650_data *data = max6650_update_device(dev);
525 if (IS_ERR(data))
526 return PTR_ERR(data);
532 *val = dac_to_pwm(data->dac,
533 data->config & MAX6650_CFG_V12);
545 mode = (data->config & MAX6650_CFG_MODE_MASK) >> 4;
563 *val = DIV_ROUND_CLOSEST(data->tach[channel] * 120,
564 DIV_FROM_REG(data->count));
567 *val = DIV_FROM_REG(data->count);
575 *val = 60 * DIV_FROM_REG(data->config) * clock /
576 (256 * (data->speed + 1));
579 *val = !!(data->alarm & MAX6650_ALRM_MIN);
580 data->alarm &= ~MAX6650_ALRM_MIN;
581 data->valid = false;
584 *val = !!(data->alarm & MAX6650_ALRM_MAX);
585 data->alarm &= ~MAX6650_ALRM_MAX;
586 data->valid = false;
589 *val = !!(data->alarm & MAX6650_ALRM_TACH);
590 data->alarm &= ~MAX6650_ALRM_TACH;
591 data->valid = false;
613 struct max6650_data *data = dev_get_drvdata(dev);
617 mutex_lock(&data->update_lock);
624 data->config & MAX6650_CFG_V12);
625 ret = i2c_smbus_write_byte_data(data->client,
629 data->dac = reg;
636 ret = max6650_set_operating_mode(data,
664 ret = i2c_smbus_write_byte_data(data->client,
668 data->count = reg;
675 ret = max6650_set_target(data, val);
688 mutex_unlock(&data->update_lock);
696 const struct max6650_data *data = _data;
698 if (channel && (channel >= data->nr_fans || type != hwmon_fan))
710 if (data->alarm_en & MAX6650_ALRM_MIN)
714 if (data->alarm_en & MAX6650_ALRM_MAX)
718 if (data->alarm_en & MAX6650_ALRM_TACH)
768 struct max6650_data *data;
772 data = devm_kzalloc(dev, sizeof(struct max6650_data), GFP_KERNEL);
773 if (!data)
776 data->client = client;
777 i2c_set_clientdata(client, data);
778 mutex_init(&data->update_lock);
779 data->nr_fans = of_id ? (int)(uintptr_t)of_id->data :
785 err = max6650_init_client(data, client);
790 client->name, data,
800 data, &max6650_cooling_ops);