summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-loki-sensors.c
diff options
context:
space:
mode:
authorVinayak Pane <vpane@nvidia.com>2014-03-12 20:11:08 -0700
committerBharat Nihalani <bnihalani@nvidia.com>2014-03-12 23:43:22 -0700
commita04df14d8353f3f254dc96e4ce03218d39dade84 (patch)
tree0616e94e253ca2a7a06ae83bf00cad15487ce597 /arch/arm/mach-tegra/board-loki-sensors.c
parent175b892a3762c983c6ede1f57c34e533b8c85dcc (diff)
Revert "arm: tegra: loki: Batt temp and tdiode shutdown"
This reverts commit e4f4af0d3722764bd8c5659fc308b698e6e28df9 because it causes boot failure on Foster. Bug 1479788 Bug 1480415 Change-Id: Ie654fbae013b4ac8ed9a85d577b8a7c40bd508ee Signed-off-by: Vinayak Pane <vpane@nvidia.com> Reviewed-on: http://git-master/r/381206 Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com> Tested-by: Bharat Nihalani <bnihalani@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-loki-sensors.c')
-rw-r--r--arch/arm/mach-tegra/board-loki-sensors.c170
1 files changed, 56 insertions, 114 deletions
diff --git a/arch/arm/mach-tegra/board-loki-sensors.c b/arch/arm/mach-tegra/board-loki-sensors.c
index c0f0d1aab582..6846027e65db 100644
--- a/arch/arm/mach-tegra/board-loki-sensors.c
+++ b/arch/arm/mach-tegra/board-loki-sensors.c
@@ -572,6 +572,52 @@ struct ntc_thermistor_adc_table {
int adc;
};
+/* This values are only for TegraTab platform. */
+static struct ntc_thermistor_adc_table loki_nff_thermistor_table[] = {
+ { -40, 2725 }, { -39, 2725 }, { -38, 2724 }, { -37, 2723 },
+ { -36, 2723 }, { -35, 2722 }, { -34, 2721 }, { -33, 2721 },
+ { -32, 2720 }, { -31, 2719 }, { -30, 2718 }, { -29, 2717 },
+ { -28, 2716 }, { -27, 2715 }, { -26, 2714 }, { -25, 2713 },
+ { -24, 2712 }, { -23, 2711 }, { -22, 2709 }, { -21, 2708 },
+ { -20, 2707 }, { -19, 2705 }, { -18, 2704 }, { -17, 2702 },
+ { -16, 2701 }, { -15, 2699 }, { -14, 2697 }, { -13, 2696 },
+ { -12, 2694 }, { -11, 2692 }, { -10, 2689 }, { -9, 2687 },
+ { -8, 2685 }, { -7, 2683 }, { -6, 2681 }, { -5, 2678 },
+ { -4, 2676 }, { -3, 2673 }, { -2, 2670 }, { -1, 2667 },
+ { 0, 2664 }, { 1, 2661 }, { 2, 2658 }, { 3, 2655 },
+ { 4, 2651 }, { 5, 2647 }, { 6, 2644 }, { 7, 2641 },
+ { 8, 2637 }, { 9, 2633 }, { 10, 2628 }, { 11, 2624 },
+ { 12, 2620 }, { 13, 2615 }, { 14, 2610 }, { 15, 2605 },
+ { 16, 2600 }, { 17, 2596 }, { 18, 2590 }, { 19, 2585 },
+ { 20, 2578 }, { 21, 2573 }, { 22, 2567 }, { 23, 2561 },
+ { 24, 2555 }, { 25, 2548 }, { 26, 2542 }, { 27, 2535 },
+ { 28, 2528 }, { 29, 2521 }, { 30, 2513 }, { 31, 2506 },
+ { 32, 2498 }, { 33, 2491 }, { 34, 2482 }, { 35, 2473 },
+ { 36, 2465 }, { 37, 2457 }, { 38, 2448 }, { 39, 2439 },
+ { 40, 2429 }, { 41, 2420 }, { 42, 2411 }, { 43, 2401 },
+ { 44, 2390 }, { 45, 2379 }, { 46, 2370 }, { 47, 2359 },
+ { 48, 2349 }, { 49, 2337 }, { 50, 2325 }, { 51, 2314 },
+ { 52, 2303 }, { 53, 2291 }, { 54, 2278 }, { 55, 2265 },
+ { 56, 2254 }, { 57, 2241 }, { 58, 2229 }, { 59, 2215 },
+ { 60, 2201 }, { 61, 2188 }, { 62, 2175 }, { 63, 2161 },
+ { 64, 2147 }, { 65, 2132 }, { 66, 2118 }, { 67, 2104 },
+ { 68, 2089 }, { 69, 2074 }, { 70, 2058 }, { 71, 2044 },
+ { 72, 2029 }, { 73, 2014 }, { 74, 1998 }, { 75, 1981 },
+ { 76, 1966 }, { 77, 1950 }, { 78, 1934 }, { 79, 1918 },
+ { 80, 1900 }, { 81, 1885 }, { 82, 1868 }, { 83, 1851 },
+ { 84, 1834 }, { 85, 1816 }, { 86, 1799 }, { 87, 1783 },
+ { 88, 1765 }, { 89, 1747 }, { 90, 1728 }, { 91, 1711 },
+ { 92, 1694 }, { 93, 1676 }, { 94, 1657 }, { 95, 1638 },
+ { 96, 1621 }, { 97, 1603 }, { 98, 1585 }, { 99, 1566 },
+ { 100, 1547 }, { 101, 1530 }, { 102, 1512 }, { 103, 1494 },
+ { 104, 1475 }, { 105, 1456 }, { 106, 1438 }, { 107, 1421 },
+ { 108, 1403 }, { 109, 1384 }, { 110, 1365 }, { 111, 1348 },
+ { 112, 1331 }, { 113, 1313 }, { 114, 1294 }, { 115, 1276 },
+ { 116, 1259 }, { 117, 1242 }, { 118, 1225 }, { 119, 1207 },
+ { 120, 1189 }, { 121, 1173 }, { 122, 1157 }, { 123, 1140 },
+ { 124, 1123 }, { 125, 1106 },
+};
+
static struct ntc_thermistor_adc_table loki_ffd_thermistor_table[] = {
{ -40, 4082 }, { -39, 4082 }, { -38, 4081 }, { -37, 4079 },
{ -36, 4078 }, { -35, 4077 }, { -34, 4075 }, { -33, 4074 },
@@ -617,52 +663,6 @@ static struct ntc_thermistor_adc_table loki_ffd_thermistor_table[] = {
{ 124, 459 }, { 125, 446 },
};
-static struct ntc_thermistor_adc_table loki_tbat_thermistor_table[] = {
- { -40, 3906 }, { -39, 3896 }, { -38, 3886 }, { -37, 3875 },
- { -36, 3862 }, { -35, 3847 }, { -34, 3836 }, { -33, 3823 },
- { -32, 3809 }, { -31, 3793 }, { -30, 3776 }, { -29, 3761 },
- { -28, 3746 }, { -27, 3729 }, { -26, 3710 }, { -25, 3689 },
- { -24, 3672 }, { -23, 3653 }, { -22, 3633 }, { -21, 3611 },
- { -20, 3586 }, { -19, 3566 }, { -18, 3544 }, { -17, 3521 },
- { -16, 3495 }, { -15, 3466 }, { -14, 3443 }, { -13, 3418 },
- { -12, 3391 }, { -11, 3361 }, { -10, 3330 }, { -9, 3303 },
- { -8, 3275 }, { -7, 3244 }, { -6, 3212 }, { -5, 3176 },
- { -4, 3147 }, { -3, 3115 }, { -2, 3082 }, { -1, 3046 },
- { 0, 3008 }, { 1, 2976 }, { 2, 2942 }, { 3, 2906 },
- { 4, 2868 }, { 5, 2827 }, { 6, 2793 }, { 7, 2757 },
- { 8, 2719 }, { 9, 2679 }, { 10, 2636 }, { 11, 2601 },
- { 12, 2564 }, { 13, 2525 }, { 14, 2484 }, { 15, 2440 },
- { 16, 2404 }, { 17, 2367 }, { 18, 2328 }, { 19, 2286 },
- { 20, 2243 }, { 21, 2207 }, { 22, 2170 }, { 23, 2131 },
- { 24, 2090 }, { 25, 2048 }, { 26, 2013 }, { 27, 1976 },
- { 28, 1939 }, { 29, 1899 }, { 30, 1859 }, { 31, 1825 },
- { 32, 1790 }, { 33, 1754 }, { 34, 1717 }, { 35, 1678 },
- { 36, 1646 }, { 37, 1613 }, { 38, 1579 }, { 39, 1544 },
- { 40, 1508 }, { 41, 1478 }, { 42, 1447 }, { 43, 1416 },
- { 44, 1383 }, { 45, 1350 }, { 46, 1322 }, { 47, 1294 },
- { 48, 1264 }, { 49, 1235 }, { 50, 1204 }, { 51, 1179 },
- { 52, 1153 }, { 53, 1126 }, { 54, 1099 }, { 55, 1072 },
- { 56, 1048 }, { 57, 1025 }, { 58, 1001 }, { 59, 976 },
- { 60, 952 }, { 61, 931 }, { 62, 909 }, { 63, 888 },
- { 64, 866 }, { 65, 844 }, { 66, 825 }, { 67, 806 },
- { 68, 787 }, { 69, 767 }, { 70, 748 }, { 71, 731 },
- { 72, 714 }, { 73, 697 }, { 74, 680 }, { 75, 662 },
- { 76, 647 }, { 77, 633 }, { 78, 617 }, { 79, 602 },
- { 80, 587 }, { 81, 573 }, { 82, 560 }, { 83, 546 },
- { 84, 533 }, { 85, 519 }, { 86, 507 }, { 87, 495 },
- { 88, 483 }, { 89, 471 }, { 90, 459 }, { 91, 448 },
- { 92, 437 }, { 93, 427 }, { 94, 416 }, { 95, 405 },
- { 96, 396 }, { 97, 386 }, { 98, 377 }, { 99, 367 },
- { 100, 358 }, { 101, 349 }, { 102, 341 }, { 103, 333 },
- { 104, 324 }, { 105, 316 }, { 106, 309 }, { 107, 301 },
- { 108, 294 }, { 109, 287 }, { 110, 279 }, { 111, 273 },
- { 112, 266 }, { 113, 260 }, { 114, 254 }, { 115, 247 },
- { 116, 242 }, { 117, 236 }, { 118, 230 }, { 119, 225 },
- { 120, 219 }, { 121, 214 }, { 122, 209 }, { 123, 204 },
- { 124, 199 }, { 125, 195 },
-};
-
-
static struct ntc_thermistor_adc_table *thermistor_table;
static int thermistor_table_size;
@@ -690,35 +690,6 @@ static int gadc_thermal_thermistor_adc_to_temp(
return temp;
};
-static struct ntc_thermistor_adc_table *tbat_thermistor_table;
-static int tbat_thermistor_table_size;
-
-static int gadc_tbat_thermistor_adc_to_temp(
- struct gadc_thermal_platform_data *pdata, int val, int val2)
-{
- int temp = 0, adc_hi, adc_lo;
- int i;
-
- for (i = 0; i < tbat_thermistor_table_size; i++)
- if (val >= tbat_thermistor_table[i].adc)
- break;
-
- if (i == 0) {
- temp = tbat_thermistor_table[i].temp * 1000;
- } else if (i >= (tbat_thermistor_table_size - 1)) {
- temp =
- tbat_thermistor_table[tbat_thermistor_table_size - 1].temp *
- 1000;
- } else {
- adc_hi = tbat_thermistor_table[i - 1].adc;
- adc_lo = tbat_thermistor_table[i].adc;
- temp = tbat_thermistor_table[i].temp * 1000;
- temp -= ((val - adc_lo) * 1000 / (adc_hi - adc_lo));
- }
-
- return temp;
-};
-
#define TDIODE_PRECISION_MULTIPLIER 1000000000LL
#define TDIODE_MIN_TEMP -25000LL
#define TDIODE_MAX_TEMP 125000LL
@@ -763,13 +734,6 @@ static struct gadc_thermal_platform_data gadc_thermal_tdiode_pdata = {
.adc_to_temp = gadc_thermal_tdiode_adc_to_temp,
};
-static struct gadc_thermal_platform_data gadc_thermal_tbat_pdata = {
- .iio_channel_name = "tbat",
- .tz_name = "battery-temp",
- .temp_offset = 0,
- .adc_to_temp = gadc_tbat_thermistor_adc_to_temp,
-};
-
static struct platform_device gadc_thermal_thermistor = {
.name = "generic-adc-thermal",
.id = 0,
@@ -786,21 +750,7 @@ static struct platform_device gadc_thermal_tdiode = {
},
};
-static struct platform_device gadc_tbat_thermistor = {
- .name = "generic-adc-thermal",
- .id = 2,
- .dev = {
- .platform_data = &gadc_thermal_tbat_pdata,
- },
-};
-
-static struct platform_device *gadc_thermal_devices_p2530[] = {
- &gadc_thermal_thermistor,
- &gadc_thermal_tdiode,
- &gadc_tbat_thermistor,
-};
-
-static struct platform_device *gadc_thermal_devices_p2530_foster[] = {
+static struct platform_device *gadc_thermal_devices[] = {
&gadc_thermal_thermistor,
&gadc_thermal_tdiode,
};
@@ -808,26 +758,18 @@ static struct platform_device *gadc_thermal_devices_p2530_foster[] = {
int __init loki_sensors_init(void)
{
tegra_get_board_info(&board_info);
-
- if (board_info.board_id == BOARD_P2530 && board_info.fab >= 0xa1) {
+ platform_add_devices(gadc_thermal_devices,
+ ARRAY_SIZE(gadc_thermal_devices));
+
+ if (board_info.board_id == BOARD_E2548 ||
+ board_info.board_id == BOARD_E2549) {
+ thermistor_table = &loki_nff_thermistor_table[0];
+ thermistor_table_size = ARRAY_SIZE(loki_nff_thermistor_table);
+ } else if (board_info.board_id == BOARD_P2530) {
thermistor_table = &loki_ffd_thermistor_table[0];
thermistor_table_size = ARRAY_SIZE(loki_ffd_thermistor_table);
- if (board_info.sku == BOARD_SKU_FOSTER) {
- platform_add_devices(gadc_thermal_devices_p2530_foster,
- ARRAY_SIZE(gadc_thermal_devices_p2530_foster));
- } else if (board_info.sku == BOARD_SKU_100 ||
- board_info.sku == BOARD_SKU_0) {
- tbat_thermistor_table =
- &loki_tbat_thermistor_table[0];
- tbat_thermistor_table_size =
- ARRAY_SIZE(loki_tbat_thermistor_table);
- platform_add_devices(gadc_thermal_devices_p2530,
- ARRAY_SIZE(gadc_thermal_devices_p2530));
-
- } else {
- pr_err("thermal: Not a known sku\n");
- }
}
+
loki_fan_est_init();
if (!(board_info.board_id == BOARD_P2530 &&
board_info.sku == BOARD_SKU_FOSTER)) {