Lines Matching defs:data
35 static inline void schedule_monitor(struct abx500_temp *data)
37 data->work_active = true;
38 schedule_delayed_work(&data->work, DEFAULT_MONITOR_DELAY);
41 static void threshold_updated(struct abx500_temp *data)
44 for (i = 0; i < data->monitored_sensors; i++)
45 if (data->max[i] != 0 || data->min[i] != 0) {
46 schedule_monitor(data);
50 dev_dbg(&data->pdev->dev, "No active thresholds.\n");
51 cancel_delayed_work_sync(&data->work);
52 data->work_active = false;
60 struct abx500_temp *data;
62 data = container_of(work, struct abx500_temp, work.work);
63 mutex_lock(&data->lock);
65 for (i = 0; i < data->monitored_sensors; i++) {
67 if (data->max[i] == 0 && data->min[i] == 0)
70 if (data->max[i] < data->min[i])
73 ret = data->ops.read_sensor(data, data->gpadc_addr[i], &temp);
75 dev_err(&data->pdev->dev, "GPADC read failed\n");
82 if (data->min[i] != 0) {
83 if (temp < data->min[i]) {
84 if (data->min_alarm[i] == false) {
85 data->min_alarm[i] = true;
89 if (data->min_alarm[i] == true) {
90 data->min_alarm[i] = false;
95 if (data->max[i] != 0) {
96 if (temp > data->max[i]) {
97 if (data->max_alarm[i] == false) {
98 data->max_alarm[i] = true;
101 } else if (temp < data->max[i] - data->max_hyst[i]) {
102 if (data->max_alarm[i] == true) {
103 data->max_alarm[i] = false;
111 sysfs_notify(&data->pdev->dev.kobj, NULL, alarm_node);
115 sysfs_notify(&data->pdev->dev.kobj, NULL, alarm_node);
119 schedule_monitor(data);
120 mutex_unlock(&data->lock);
127 struct abx500_temp *data = dev_get_drvdata(dev);
129 return data->ops.show_name(dev, devattr, buf);
135 struct abx500_temp *data = dev_get_drvdata(dev);
137 return data->ops.show_label(dev, devattr, buf);
144 struct abx500_temp *data = dev_get_drvdata(dev);
146 u8 gpadc_addr = data->gpadc_addr[attr->index];
148 ret = data->ops.read_sensor(data, gpadc_addr, &temp);
160 struct abx500_temp *data = dev_get_drvdata(dev);
168 mutex_lock(&data->lock);
169 data->min[attr->index] = val;
170 threshold_updated(data);
171 mutex_unlock(&data->lock);
180 struct abx500_temp *data = dev_get_drvdata(dev);
188 mutex_lock(&data->lock);
189 data->max[attr->index] = val;
190 threshold_updated(data);
191 mutex_unlock(&data->lock);
201 struct abx500_temp *data = dev_get_drvdata(dev);
209 mutex_lock(&data->lock);
210 data->max_hyst[attr->index] = val;
211 threshold_updated(data);
212 mutex_unlock(&data->lock);
221 struct abx500_temp *data = dev_get_drvdata(dev);
224 return sprintf(buf, "%lu\n", data->min[attr->index]);
230 struct abx500_temp *data = dev_get_drvdata(dev);
233 return sprintf(buf, "%lu\n", data->max[attr->index]);
239 struct abx500_temp *data = dev_get_drvdata(dev);
242 return sprintf(buf, "%lu\n", data->max_hyst[attr->index]);
248 struct abx500_temp *data = dev_get_drvdata(dev);
251 return sprintf(buf, "%d\n", data->min_alarm[attr->index]);
257 struct abx500_temp *data = dev_get_drvdata(dev);
260 return sprintf(buf, "%d\n", data->max_alarm[attr->index]);
267 struct abx500_temp *data = dev_get_drvdata(dev);
269 if (data->ops.is_visible)
270 return data->ops.is_visible(attr, n);
359 struct abx500_temp *data = platform_get_drvdata(pdev);
361 data->ops.irq_handler(irq, data);
385 struct abx500_temp *data;
388 data = devm_kzalloc(&pdev->dev, sizeof(*data), GFP_KERNEL);
389 if (!data)
392 data->pdev = pdev;
393 mutex_init(&data->lock);
396 err = abx500_hwmon_init(data);
397 if (err < 0 || !data->ops.read_sensor || !data->ops.show_name ||
398 !data->ops.show_label)
401 INIT_DEFERRABLE_WORK(&data->work, gpadc_monitor);
403 platform_set_drvdata(pdev, data);
411 data->hwmon_dev = hwmon_device_register(&pdev->dev);
412 if (IS_ERR(data->hwmon_dev)) {
413 err = PTR_ERR(data->hwmon_dev);
418 if (data->ops.irq_handler) {
426 hwmon_device_unregister(data->hwmon_dev);
434 struct abx500_temp *data = platform_get_drvdata(pdev);
436 cancel_delayed_work_sync(&data->work);
437 hwmon_device_unregister(data->hwmon_dev);
446 struct abx500_temp *data = platform_get_drvdata(pdev);
448 if (data->work_active)
449 cancel_delayed_work_sync(&data->work);
456 struct abx500_temp *data = platform_get_drvdata(pdev);
458 if (data->work_active)
459 schedule_monitor(data);