thermocouple: Report fault information in fault field

Send the fault information explicitly in the query_thermocouple fault
field for max6675, max31855, and max31865.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
Kevin O'Connor
2022-09-19 13:28:45 -04:00
parent ddb59440a8
commit 4e930294b8
2 changed files with 12 additions and 18 deletions

View File

@@ -90,6 +90,8 @@ thermocouple_respond(struct thermocouple_spi *spi, uint32_t next_begin_time
/* check the result and stop if below or above allowed range */
if (value < spi->min_value || value > spi->max_value)
try_shutdown("Thermocouple ADC out of range");
if (fault)
try_shutdown("Thermocouple reader fault");
}
static void
@@ -101,10 +103,7 @@ thermocouple_handle_max31855(struct thermocouple_spi *spi
uint32_t value;
memcpy(&value, msg, sizeof(value));
value = be32_to_cpu(value);
thermocouple_respond(spi, next_begin_time, value, 0, oid);
// Kill after data send, host decode an error
if (value & 0x04)
try_shutdown("Thermocouple reader fault");
thermocouple_respond(spi, next_begin_time, value, value & 0x07, oid);
}
#define MAX31856_LTCBH_REG 0x0C
@@ -142,10 +141,8 @@ thermocouple_handle_max31865(struct thermocouple_spi *spi
msg[0] = MAX31865_FAULTSTAT_REG;
msg[1] = 0x00;
spidev_transfer(spi->spi, 1, 2, msg);
thermocouple_respond(spi, next_begin_time, value, msg[1], oid);
// Kill after data send, host decode an error
if (value & 0x0001)
try_shutdown("Thermocouple reader fault");
uint8_t fault = (msg[1] & ~0x03) | (value & 0x0001);
thermocouple_respond(spi, next_begin_time, value, fault, oid);
}
static void
@@ -157,10 +154,7 @@ thermocouple_handle_max6675(struct thermocouple_spi *spi
uint16_t value;
memcpy(&value, msg, sizeof(msg));
value = be16_to_cpu(value);
thermocouple_respond(spi, next_begin_time, value, 0, oid);
// Kill after data send, host decode an error
if (value & 0x04)
try_shutdown("Thermocouple reader fault");
thermocouple_respond(spi, next_begin_time, value, value & 0x06, oid);
}
// task to read thermocouple and send response