Lines Matching full:sensor
459 tsensor_calibration(struct soctherm_softc *sc, struct tsensor *sensor)
472 val = tegra_fuse_read_4(sensor->calib_fuse);
495 temp_a = div64_s64_precise((int64_t)temp_a * sensor->fuse_corr_alpha,
497 temp_b = div64_s64_precise((int64_t)temp_b * sensor->fuse_corr_alpha +
498 sensor->fuse_corr_beta, 1000000);
499 sensor->therm_a = (int16_t)temp_a;
500 sensor->therm_b = (int16_t)temp_b;
502 printf("%s: sensor %s fuse: 0x%08X (0x%04X, 0x%04X)"
504 __func__, sensor->name, val, val & 0x1FFF, (val >> 13) & 0x1FFF,
507 (uint16_t)sensor->therm_a, sensor->therm_a,
508 (uint16_t)sensor->therm_b, sensor->therm_b);
513 soctherm_init_tsensor(struct soctherm_softc *sc, struct tsensor *sensor)
519 tsensor_calibration(sc, sensor);
521 val = RD4(sc, sensor->sensor_base + TSENSOR_CONFIG0);
524 WR4(sc, sensor->sensor_base + TSENSOR_CONFIG0, val);
528 WR4(sc, sensor->sensor_base + TSENSOR_CONFIG0, val);
534 WR4(sc, sensor->sensor_base + TSENSOR_CONFIG1, val);
536 val = TSENSOR_CONFIG2_THERMA((uint16_t)sensor->therm_a) |
537 TSENSOR_CONFIG2_THERMB((uint16_t)sensor->therm_b);
538 WR4(sc, sensor->sensor_base + TSENSOR_CONFIG2, val);
540 val = RD4(sc, sensor->sensor_base + TSENSOR_CONFIG0);
542 WR4(sc, sensor->sensor_base + TSENSOR_CONFIG0, val);
544 printf(" Sensor: %s cfg:0x%08X, 0x%08X, 0x%08X,"
545 " sts:0x%08X, 0x%08X, 0x%08X\n", sensor->name,
546 RD4(sc, sensor->sensor_base + TSENSOR_CONFIG0),
547 RD4(sc, sensor->sensor_base + TSENSOR_CONFIG1),
548 RD4(sc, sensor->sensor_base + TSENSOR_CONFIG2),
549 RD4(sc, sensor->sensor_base + TSENSOR_STATUS0),
550 RD4(sc, sensor->sensor_base + TSENSOR_STATUS1),
551 RD4(sc, sensor->sensor_base + TSENSOR_STATUS2)
571 soctherm_read_temp(struct soctherm_softc *sc, struct tsensor *sensor, int *temp)
578 val = RD4(sc, sensor->sensor_base + TSENSOR_STATUS1);
584 device_printf(sc->dev, "Sensor %s timeouted\n", sensor->name);
588 printf(" Sensor: %s cfg:0x%08X, 0x%08X, 0x%08X,"
589 " sts:0x%08X, 0x%08X, 0x%08X\n", sensor->name,
590 RD4(sc, sensor->sensor_base + TSENSOR_CONFIG0),
591 RD4(sc, sensor->sensor_base + TSENSOR_CONFIG1),
592 RD4(sc, sensor->sensor_base + TSENSOR_CONFIG2),
593 RD4(sc, sensor->sensor_base + TSENSOR_STATUS0),
594 RD4(sc, sensor->sensor_base + TSENSOR_STATUS1),
595 RD4(sc, sensor->sensor_base + TSENSOR_STATUS2)
608 /* The direct sensor map starts at 0x100 */