Lines Matching refs:sensor

133 	struct smusat_sensor *sensor;  in smusat_attach()  local
152 sensor = &sc->sc_sensors[sc->sc_num_sensors]; in smusat_attach()
153 sensor->sc = sc; in smusat_attach()
155 memset(sensor->location, 0, sizeof(sensor->location)); in smusat_attach()
156 OF_getprop(node, "location", sensor->location, in smusat_attach()
157 sizeof(sensor->location)); in smusat_attach()
159 if (OF_getprop(node, "reg", &sensor->reg, in smusat_attach()
160 sizeof(sensor->reg)) <= 0) in smusat_attach()
163 if ((sensor->reg < 0x30) || (sensor->reg > 0x37)) in smusat_attach()
165 sensor->reg -= 0x30; in smusat_attach()
167 if (OF_getprop(node, "zone", &sensor->zone, in smusat_attach()
168 sizeof(sensor->zone)) <= 0) in smusat_attach()
175 sensor->type = SMUSAT_SENSOR_TEMP; in smusat_attach()
176 sensor->shift = 10; in smusat_attach()
178 sensor->type = SMUSAT_SENSOR_CURRENT; in smusat_attach()
179 sensor->shift = 8; in smusat_attach()
181 sensor->type = SMUSAT_SENSOR_VOLTAGE; in smusat_attach()
182 sensor->shift = 4; in smusat_attach()
184 sensor->type = SMUSAT_SENSOR_POWER; in smusat_attach()
185 sensor->shift = 0; in smusat_attach()
189 sensor->location, sensor->reg, sensor->zone, type); in smusat_attach()
205 sensor = &sc->sc_sensors[i]; in smusat_attach()
207 for (j = 0; j < strlen(sensor->location); j++) { in smusat_attach()
208 sysctl_sensor_name[j] = tolower(sensor->location[j]); in smusat_attach()
226 NULL, 0, &sensor->zone, 0, in smusat_attach()
236 smusat_sysctl_sensor_value, 0, (void *) sensor, 0, in smusat_attach()
252 struct smusat_sensor *sensor; in smusat_setup_sme() local
260 sensor = &sc->sc_sensors[i]; in smusat_setup_sme()
262 switch (sensor->type) { in smusat_setup_sme()
281 "%s", sensor->location); in smusat_setup_sme()
304 struct smusat_sensor *sensor; in smusat_sme_refresh() local
305 int which = edata->sensor; in smusat_sme_refresh()
311 sensor = &sc->sc_sensors[which]; in smusat_sme_refresh()
313 ret = smusat_sensor_read(sensor, NULL); in smusat_sme_refresh()
315 switch (sensor->type) { in smusat_sme_refresh()
317 edata->value_cur = sensor->current_value * in smusat_sme_refresh()
321 edata->value_cur = sensor->current_value * 1000000; in smusat_sme_refresh()
324 edata->value_cur = sensor->current_value * 1000000; in smusat_sme_refresh()
327 edata->value_cur = sensor->current_value * 1000000; in smusat_sme_refresh()
330 edata->value_cur = sensor->current_value; in smusat_sme_refresh()
357 smusat_sensor_read(struct smusat_sensor *sensor, int *value) in smusat_sensor_read() argument
359 struct smusat_softc *sc = sensor->sc; in smusat_sensor_read()
368 reg = sensor->reg << 1; in smusat_sensor_read()
369 sensor->current_value = (sc->sc_cache[reg] << 8) + sc->sc_cache[reg + 1]; in smusat_sensor_read()
370 sensor->current_value <<= sensor->shift; in smusat_sensor_read()
372 sensor->current_value >>= 16; in smusat_sensor_read()
375 *value = sensor->current_value; in smusat_sensor_read()
384 struct smusat_sensor *sensor = node.sysctl_data; in smusat_sysctl_sensor_value() local
390 ret = smusat_sensor_read(sensor, &value); in smusat_sysctl_sensor_value()