in common/sensor/dev/intel_peci.c [202:249]
uint8_t intel_peci_read(uint8_t sensor_num, int *reading)
{
if (!reading)
return SENSOR_UNSPECIFIED_ERROR;
bool ret_val = false;
sensor_cfg *cfg = &sensor_config[SensorNum_SensorCfg_map[sensor_num]];
const uint8_t read_type = cfg->offset;
if (read_type <= PECI_UNKNOWN || read_type >= PECI_MAX)
return SENSOR_NOT_FOUND;
switch (read_type) {
case PECI_TEMP_CHANNEL0_DIMM0:
case PECI_TEMP_CHANNEL0_DIMM1:
case PECI_TEMP_CHANNEL1_DIMM0:
case PECI_TEMP_CHANNEL1_DIMM1:
case PECI_TEMP_CHANNEL2_DIMM0:
case PECI_TEMP_CHANNEL2_DIMM1:
case PECI_TEMP_CHANNEL3_DIMM0:
case PECI_TEMP_CHANNEL3_DIMM1:
case PECI_TEMP_CHANNEL4_DIMM0:
case PECI_TEMP_CHANNEL4_DIMM1:
case PECI_TEMP_CHANNEL5_DIMM0:
case PECI_TEMP_CHANNEL5_DIMM1:
case PECI_TEMP_CHANNEL6_DIMM0:
case PECI_TEMP_CHANNEL6_DIMM1:
case PECI_TEMP_CHANNEL7_DIMM0:
case PECI_TEMP_CHANNEL7_DIMM1:
ret_val = get_dimm_temp(cfg->slave_addr, read_type, reading);
break;
case PECI_TEMP_CPU_MARGIN:
ret_val = get_cpu_margin(cfg->slave_addr, reading);
break;
case PECI_TEMP_CPU_TJMAX:
ret_val = get_cpu_tjmax(cfg->slave_addr, reading);
break;
case PECI_TEMP_CPU:
ret_val = get_cpu_temp(cfg->slave_addr, reading);
break;
case PECI_PWR_CPU:
ret_val = get_cpu_pwr(sensor_num, reading);
break;
default:
break;
}
return ret_val ? SENSOR_READ_SUCCESS : SENSOR_FAIL_TO_ACCESS;
}