Source
138
138
139
139
mutex_unlock(&data->update_lock);
140
140
141
141
return data;
142
142
}
143
143
144
144
/*
145
145
* Sysfs stuff
146
146
*/
147
147
148
-
static ssize_t show_temp(struct device *dev, struct device_attribute *devattr,
148
+
static ssize_t temp_show(struct device *dev, struct device_attribute *devattr,
149
149
char *buf)
150
150
{
151
151
struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
152
152
struct max1619_data *data = max1619_update_device(dev);
153
153
154
154
return sprintf(buf, "%d\n", temp_from_reg(data->temp[attr->index]));
155
155
}
156
156
157
-
static ssize_t set_temp(struct device *dev, struct device_attribute *devattr,
158
-
const char *buf, size_t count)
157
+
static ssize_t temp_store(struct device *dev,
158
+
struct device_attribute *devattr, const char *buf,
159
+
size_t count)
159
160
{
160
161
struct sensor_device_attribute *attr = to_sensor_dev_attr(devattr);
161
162
struct max1619_data *data = dev_get_drvdata(dev);
162
163
struct i2c_client *client = data->client;
163
164
long val;
164
165
int err = kstrtol(buf, 10, &val);
165
166
if (err)
166
167
return err;
167
168
168
169
mutex_lock(&data->update_lock);
173
174
return count;
174
175
}
175
176
176
177
static ssize_t alarms_show(struct device *dev, struct device_attribute *attr,
177
178
char *buf)
178
179
{
179
180
struct max1619_data *data = max1619_update_device(dev);
180
181
return sprintf(buf, "%d\n", data->alarms);
181
182
}
182
183
183
-
static ssize_t show_alarm(struct device *dev, struct device_attribute *attr,
184
+
static ssize_t alarm_show(struct device *dev, struct device_attribute *attr,
184
185
char *buf)
185
186
{
186
187
int bitnr = to_sensor_dev_attr(attr)->index;
187
188
struct max1619_data *data = max1619_update_device(dev);
188
189
return sprintf(buf, "%d\n", (data->alarms >> bitnr) & 1);
189
190
}
190
191
191
-
static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, show_temp, NULL, t_input1);
192
-
static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, show_temp, NULL, t_input2);
193
-
static SENSOR_DEVICE_ATTR(temp2_min, S_IWUSR | S_IRUGO, show_temp, set_temp,
194
-
t_low2);
195
-
static SENSOR_DEVICE_ATTR(temp2_max, S_IWUSR | S_IRUGO, show_temp, set_temp,
196
-
t_high2);
197
-
static SENSOR_DEVICE_ATTR(temp2_crit, S_IWUSR | S_IRUGO, show_temp, set_temp,
198
-
t_crit2);
199
-
static SENSOR_DEVICE_ATTR(temp2_crit_hyst, S_IWUSR | S_IRUGO, show_temp,
200
-
set_temp, t_hyst2);
192
+
static SENSOR_DEVICE_ATTR_RO(temp1_input, temp, t_input1);
193
+
static SENSOR_DEVICE_ATTR_RO(temp2_input, temp, t_input2);
194
+
static SENSOR_DEVICE_ATTR_RW(temp2_min, temp, t_low2);
195
+
static SENSOR_DEVICE_ATTR_RW(temp2_max, temp, t_high2);
196
+
static SENSOR_DEVICE_ATTR_RW(temp2_crit, temp, t_crit2);
197
+
static SENSOR_DEVICE_ATTR_RW(temp2_crit_hyst, temp, t_hyst2);
201
198
202
199
static DEVICE_ATTR_RO(alarms);
203
-
static SENSOR_DEVICE_ATTR(temp2_crit_alarm, S_IRUGO, show_alarm, NULL, 1);
204
-
static SENSOR_DEVICE_ATTR(temp2_fault, S_IRUGO, show_alarm, NULL, 2);
205
-
static SENSOR_DEVICE_ATTR(temp2_min_alarm, S_IRUGO, show_alarm, NULL, 3);
206
-
static SENSOR_DEVICE_ATTR(temp2_max_alarm, S_IRUGO, show_alarm, NULL, 4);
200
+
static SENSOR_DEVICE_ATTR_RO(temp2_crit_alarm, alarm, 1);
201
+
static SENSOR_DEVICE_ATTR_RO(temp2_fault, alarm, 2);
202
+
static SENSOR_DEVICE_ATTR_RO(temp2_min_alarm, alarm, 3);
203
+
static SENSOR_DEVICE_ATTR_RO(temp2_max_alarm, alarm, 4);
207
204
208
205
static struct attribute *max1619_attrs[] = {
209
206
&sensor_dev_attr_temp1_input.dev_attr.attr,
210
207
&sensor_dev_attr_temp2_input.dev_attr.attr,
211
208
&sensor_dev_attr_temp2_min.dev_attr.attr,
212
209
&sensor_dev_attr_temp2_max.dev_attr.attr,
213
210
&sensor_dev_attr_temp2_crit.dev_attr.attr,
214
211
&sensor_dev_attr_temp2_crit_hyst.dev_attr.attr,
215
212
216
213
&dev_attr_alarms.attr,