Lines Matching defs:sensor
189 container_of(_sensor, struct ltc2983_thermocouple, sensor)
192 container_of(_sensor, struct ltc2983_rtd, sensor)
195 container_of(_sensor, struct ltc2983_thermistor, sensor)
198 container_of(_sensor, struct ltc2983_diode, sensor)
201 container_of(_sensor, struct ltc2983_rsense, sensor)
204 container_of(_sensor, struct ltc2983_adc, sensor)
207 container_of(_sensor, struct ltc2983_temp, sensor)
241 const struct ltc2983_sensor *sensor);
242 /* specifies the sensor channel */
244 /* sensor type */
249 /* raw table sensor data */
258 struct ltc2983_sensor sensor;
265 struct ltc2983_sensor sensor;
274 struct ltc2983_sensor sensor;
282 struct ltc2983_sensor sensor;
289 struct ltc2983_sensor sensor;
294 struct ltc2983_sensor sensor;
299 struct ltc2983_sensor sensor;
347 const struct ltc2983_sensor *sensor,
350 u32 reg = LTC2983_CHAN_START_ADDR(sensor->chan);
352 chan_val |= LTC2983_CHAN_TYPE(sensor->type);
370 * configuring the sensor channel, we must write the number of
384 * sensor, a steinhart sensor might have been added changing
391 "Not space left(%d) for new custom sensor(%zu)",
406 dev_dbg(dev, "Assign custom sensor, reg:0x%04X, off:%d, sz:%zu",
409 /* write custom sensor table */
453 dev_err(dev, "No space left(%d) for new custom sensor(%zu)",
507 * sensor will sit in a correct address without the need of filling
539 const struct ltc2983_sensor *sensor)
541 struct ltc2983_thermocouple *thermo = to_thermocouple(sensor);
555 return __ltc2983_chan_assign_common(st, sensor, chan_val);
559 const struct ltc2983_sensor *sensor)
561 struct ltc2983_rtd *rtd = to_rtd(sensor);
577 return __ltc2983_chan_assign_common(st, sensor, chan_val);
581 const struct ltc2983_sensor *sensor)
583 struct ltc2983_thermistor *thermistor = to_thermistor(sensor);
600 return __ltc2983_chan_assign_common(st, sensor, chan_val);
604 const struct ltc2983_sensor *sensor)
606 struct ltc2983_diode *diode = to_diode(sensor);
613 return __ltc2983_chan_assign_common(st, sensor, chan_val);
617 const struct ltc2983_sensor *sensor)
619 struct ltc2983_rsense *rsense = to_rsense(sensor);
624 return __ltc2983_chan_assign_common(st, sensor, chan_val);
628 const struct ltc2983_sensor *sensor)
630 struct ltc2983_adc *adc = to_adc(sensor);
635 return __ltc2983_chan_assign_common(st, sensor, chan_val);
639 const struct ltc2983_sensor *sensor)
641 struct ltc2983_temp *temp = to_temp(sensor);
651 return __ltc2983_chan_assign_common(st, sensor, chan_val);
656 const struct ltc2983_sensor *sensor)
670 ret = fwnode_property_read_u32(child, "adi,sensor-oc-current-microamp", &oc_current);
699 sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) {
702 sensor->chan);
721 /* check custom sensor */
722 if (sensor->type == LTC2983_SENSOR_THERMOCOUPLE_CUSTOM) {
735 thermo->sensor.fault_handler = ltc2983_thermocouple_fault_handler;
736 thermo->sensor.assign_chan = ltc2983_thermocouple_assign_chan;
739 return &thermo->sensor;
748 const struct ltc2983_sensor *sensor)
836 if (sensor->chan < min || sensor->chan > max) {
838 sensor->chan);
845 if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) {
847 "Invalid chann:%d for RTD", sensor->chan);
854 /* check custom sensor */
855 if (sensor->type == LTC2983_SENSOR_RTD_CUSTOM) {
866 rtd->sensor.fault_handler = ltc2983_common_fault_handler;
867 rtd->sensor.assign_chan = ltc2983_rtd_assign_chan;
912 return &rtd->sensor;
920 const struct ltc2983_sensor *sensor)
957 sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) {
960 sensor->chan);
965 /* check custom sensor */
966 if (sensor->type >= LTC2983_SENSOR_THERMISTOR_STEINHART) {
970 if (sensor->type == LTC2983_SENSOR_THERMISTOR_STEINHART) {
987 thermistor->sensor.fault_handler = ltc2983_common_fault_handler;
988 thermistor->sensor.assign_chan = ltc2983_thermistor_assign_chan;
994 if (sensor->type >= LTC2983_SENSOR_THERMISTOR_STEINHART)
1004 if (sensor->type >=
1056 return &thermistor->sensor;
1064 const struct ltc2983_sensor *sensor)
1085 sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) {
1088 sensor->chan);
1092 diode->sensor.fault_handler = ltc2983_common_fault_handler;
1093 diode->sensor.assign_chan = ltc2983_diode_assign_chan;
1124 return &diode->sensor;
1129 const struct ltc2983_sensor *sensor)
1140 if (sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) {
1142 sensor->chan);
1160 rsense->sensor.assign_chan = ltc2983_r_sense_assign_chan;
1162 return &rsense->sensor;
1167 const struct ltc2983_sensor *sensor)
1179 sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) {
1181 sensor->chan);
1185 adc->sensor.assign_chan = ltc2983_adc_assign_chan;
1186 adc->sensor.fault_handler = ltc2983_common_fault_handler;
1188 return &adc->sensor;
1193 const struct ltc2983_sensor *sensor)
1205 sensor->chan < LTC2983_DIFFERENTIAL_CHAN_MIN) {
1207 sensor->chan);
1217 temp->sensor.assign_chan = ltc2983_temp_assign_chan;
1218 temp->sensor.fault_handler = ltc2983_common_fault_handler;
1220 return &temp->sensor;
1224 const struct ltc2983_sensor *sensor, int *val)
1231 start_conversion |= LTC2983_STATUS_CHAN_SEL(sensor->chan);
1233 sensor->chan, start_conversion);
1243 * Depending on the sensor configuration, there are 2/3 conversions
1254 ret = regmap_bulk_read(st->regmap, LTC2983_CHAN_RES_ADDR(sensor->chan),
1266 ret = sensor->fault_handler(st, *val);
1372 struct ltc2983_sensor sensor;
1374 ret = fwnode_property_read_u32(child, "reg", &sensor.chan);
1381 if (sensor.chan < LTC2983_MIN_CHANNELS_NR ||
1382 sensor.chan > st->info->max_channels_nr) {
1384 dev_err(dev, "chan:%d must be from %u to %u\n", sensor.chan,
1387 } else if (channel_avail_mask & BIT(sensor.chan)) {
1389 dev_err(dev, "chan:%d already in use\n", sensor.chan);
1393 ret = fwnode_property_read_u32(child, "adi,sensor-type", &sensor.type);
1396 "adi,sensor-type property must given for child nodes\n");
1400 dev_dbg(dev, "Create new sensor, type %u, chann %u",
1401 sensor.type,
1402 sensor.chan);
1404 if (sensor.type >= LTC2983_SENSOR_THERMOCOUPLE &&
1405 sensor.type <= LTC2983_SENSOR_THERMOCOUPLE_CUSTOM) {
1407 &sensor);
1408 } else if (sensor.type >= LTC2983_SENSOR_RTD &&
1409 sensor.type <= LTC2983_SENSOR_RTD_CUSTOM) {
1410 st->sensors[chan] = ltc2983_rtd_new(child, st, &sensor);
1411 } else if (sensor.type >= LTC2983_SENSOR_THERMISTOR &&
1412 sensor.type <= LTC2983_SENSOR_THERMISTOR_CUSTOM) {
1414 &sensor);
1415 } else if (sensor.type == LTC2983_SENSOR_DIODE) {
1417 &sensor);
1418 } else if (sensor.type == LTC2983_SENSOR_SENSE_RESISTOR) {
1420 &sensor);
1423 } else if (sensor.type == LTC2983_SENSOR_DIRECT_ADC) {
1424 st->sensors[chan] = ltc2983_adc_new(child, st, &sensor);
1426 sensor.type == LTC2983_SENSOR_ACTIVE_TEMP) {
1427 st->sensors[chan] = ltc2983_temp_new(child, st, &sensor);
1429 dev_err(dev, "Unknown sensor type %d\n", sensor.type);
1435 dev_err(dev, "Failed to create sensor %ld",
1440 /* set generic sensor parameters */
1441 st->sensors[chan]->chan = sensor.chan;
1442 st->sensors[chan]->type = sensor.type;
1444 channel_avail_mask |= BIT(sensor.chan);
1554 * reference the sensor given the iio_chan_spec