Lines Matching refs:data
86 struct sch5627_data *data = dev_get_drvdata(dev);
87 struct sch5627_data *ret = data;
90 mutex_lock(&data->update_lock);
93 if (time_after(jiffies, data->last_battery + 300 * HZ)) {
94 sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL,
95 data->control | 0x10);
96 data->last_battery = jiffies;
100 if (time_after(jiffies, data->last_updated + HZ) || !data->valid) {
102 val = sch56xx_read_virtual_reg12(data->addr,
110 data->temp[i] = val;
114 val = sch56xx_read_virtual_reg16(data->addr,
120 data->fan[i] = val;
124 val = sch56xx_read_virtual_reg12(data->addr,
132 data->in[i] = val;
135 data->last_updated = jiffies;
136 data->valid = 1;
139 mutex_unlock(&data->update_lock);
143 static int sch5627_read_limits(struct sch5627_data *data)
152 val = sch56xx_read_virtual_reg(data->addr,
156 data->temp_max[i] = val;
158 val = sch56xx_read_virtual_reg(data->addr,
162 data->temp_crit[i] = val;
165 val = sch56xx_read_virtual_reg16(data->addr,
169 data->fan_min[i] = val;
205 struct sch5627_data *data = sch5627_update_device(dev);
208 if (IS_ERR(data))
209 return PTR_ERR(data);
211 val = reg_to_temp(data->temp[attr->index]);
219 struct sch5627_data *data = sch5627_update_device(dev);
221 if (IS_ERR(data))
222 return PTR_ERR(data);
224 return snprintf(buf, PAGE_SIZE, "%d\n", data->temp[attr->index] == 0);
231 struct sch5627_data *data = dev_get_drvdata(dev);
234 val = reg_to_temp_limit(data->temp_max[attr->index]);
242 struct sch5627_data *data = dev_get_drvdata(dev);
245 val = reg_to_temp_limit(data->temp_crit[attr->index]);
253 struct sch5627_data *data = sch5627_update_device(dev);
256 if (IS_ERR(data))
257 return PTR_ERR(data);
259 val = reg_to_rpm(data->fan[attr->index]);
270 struct sch5627_data *data = sch5627_update_device(dev);
272 if (IS_ERR(data))
273 return PTR_ERR(data);
276 data->fan[attr->index] == 0xffff);
283 struct sch5627_data *data = dev_get_drvdata(dev);
284 int val = reg_to_rpm(data->fan_min[attr->index]);
295 struct sch5627_data *data = sch5627_update_device(dev);
298 if (IS_ERR(data))
299 return PTR_ERR(data);
302 data->in[attr->index] * SCH5627_REG_IN_FACTOR[attr->index],
442 struct sch5627_data *data = platform_get_drvdata(pdev);
444 if (data->watchdog)
445 sch56xx_watchdog_unregister(data->watchdog);
447 if (data->hwmon_dev)
448 hwmon_device_unregister(data->hwmon_dev);
457 struct sch5627_data *data;
460 data = devm_kzalloc(&pdev->dev, sizeof(struct sch5627_data),
462 if (!data)
465 data->addr = platform_get_resource(pdev, IORESOURCE_IO, 0)->start;
466 mutex_init(&data->update_lock);
467 platform_set_drvdata(pdev, data);
469 val = sch56xx_read_virtual_reg(data->addr, SCH5627_REG_HWMON_ID);
481 val = sch56xx_read_virtual_reg(data->addr, SCH5627_REG_COMPANY_ID);
493 val = sch56xx_read_virtual_reg(data->addr, SCH5627_REG_PRIMARY_ID);
505 build_code = sch56xx_read_virtual_reg(data->addr,
512 build_id = sch56xx_read_virtual_reg16(data->addr,
519 hwmon_rev = sch56xx_read_virtual_reg(data->addr,
526 val = sch56xx_read_virtual_reg(data->addr, SCH5627_REG_CTRL);
531 data->control = val;
532 if (!(data->control & 0x01)) {
539 sch56xx_write_virtual_reg(data->addr, SCH5627_REG_CTRL,
540 data->control | 0x10);
541 data->last_battery = jiffies;
547 err = sch5627_read_limits(data);
551 pr_info("found %s chip at %#hx\n", DEVNAME, data->addr);
560 data->hwmon_dev = hwmon_device_register(&pdev->dev);
561 if (IS_ERR(data->hwmon_dev)) {
562 err = PTR_ERR(data->hwmon_dev);
563 data->hwmon_dev = NULL;
568 data->watchdog = sch56xx_watchdog_register(&pdev->dev, data->addr,
570 &data->update_lock, 1);