Lines Matching full:sensor
2 * System Control and Power Interface(SCPI) based hwmon sensor driver
65 static void scpi_scale_reading(u64 *value, struct sensor_data *sensor) in scpi_scale_reading() argument
67 if (scpi_scale[sensor->info.class] != sensor->scale) { in scpi_scale_reading()
68 *value *= scpi_scale[sensor->info.class]; in scpi_scale_reading()
69 do_div(*value, sensor->scale); in scpi_scale_reading()
78 struct sensor_data *sensor = &scpi_sensors->data[zone->sensor_id]; in scpi_read_temp() local
82 ret = scpi_ops->sensor_get_value(sensor->info.sensor_id, &value); in scpi_read_temp()
86 scpi_scale_reading(&value, sensor); in scpi_read_temp()
98 struct sensor_data *sensor; in scpi_show_sensor() local
102 sensor = container_of(attr, struct sensor_data, dev_attr_input); in scpi_show_sensor()
104 ret = scpi_ops->sensor_get_value(sensor->info.sensor_id, &value); in scpi_show_sensor()
108 scpi_scale_reading(&value, sensor); in scpi_show_sensor()
116 struct sensor_data *sensor; in scpi_show_label() local
118 sensor = container_of(attr, struct sensor_data, dev_attr_label); in scpi_show_label()
120 return sprintf(buf, "%s\n", sensor->info.name); in scpi_show_label()
181 struct sensor_data *sensor = &scpi_sensors->data[idx]; in scpi_hwmon_probe() local
183 ret = scpi_ops->sensor_get_info(i, &sensor->info); in scpi_hwmon_probe()
187 switch (sensor->info.class) { in scpi_hwmon_probe()
189 snprintf(sensor->input, sizeof(sensor->input), in scpi_hwmon_probe()
191 snprintf(sensor->label, sizeof(sensor->input), in scpi_hwmon_probe()
196 snprintf(sensor->input, sizeof(sensor->input), in scpi_hwmon_probe()
198 snprintf(sensor->label, sizeof(sensor->input), in scpi_hwmon_probe()
203 snprintf(sensor->input, sizeof(sensor->input), in scpi_hwmon_probe()
205 snprintf(sensor->label, sizeof(sensor->input), in scpi_hwmon_probe()
210 snprintf(sensor->input, sizeof(sensor->input), in scpi_hwmon_probe()
212 snprintf(sensor->label, sizeof(sensor->input), in scpi_hwmon_probe()
217 snprintf(sensor->input, sizeof(sensor->input), in scpi_hwmon_probe()
219 snprintf(sensor->label, sizeof(sensor->input), in scpi_hwmon_probe()
227 sensor->scale = scale[sensor->info.class]; in scpi_hwmon_probe()
229 sensor->dev_attr_input.attr.mode = S_IRUGO; in scpi_hwmon_probe()
230 sensor->dev_attr_input.show = scpi_show_sensor; in scpi_hwmon_probe()
231 sensor->dev_attr_input.attr.name = sensor->input; in scpi_hwmon_probe()
233 sensor->dev_attr_label.attr.mode = S_IRUGO; in scpi_hwmon_probe()
234 sensor->dev_attr_label.show = scpi_show_label; in scpi_hwmon_probe()
235 sensor->dev_attr_label.attr.name = sensor->label; in scpi_hwmon_probe()
237 scpi_sensors->attrs[idx << 1] = &sensor->dev_attr_input.attr; in scpi_hwmon_probe()
238 scpi_sensors->attrs[(idx << 1) + 1] = &sensor->dev_attr_label.attr; in scpi_hwmon_probe()
266 struct sensor_data *sensor = &scpi_sensors->data[i]; in scpi_hwmon_probe() local
270 if (sensor->info.class != TEMPERATURE) in scpi_hwmon_probe()
280 sensor->info.sensor_id, in scpi_hwmon_probe()