summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorNine Feng <nfeng@nvidia.com>2014-03-11 21:44:45 +0800
committerDanny Song <dsong@nvidia.com>2014-03-20 01:30:29 -0700
commit70efa365dfd38e3c4664a29451038e4e749ee9cd (patch)
tree2c09876bb8187d0cdb531c6fa808b7782308fe2e /arch
parent978d5b001e2694e4063c3d4a37603d7192f7aa60 (diff)
ARM: tegra: tn7c: runtime select tskin coeffcients
Bug 1468114 Bug 1432052 Change-Id: I534295b63540d3a5604d92f9f5f3c7237edfec77 Signed-off-by: Nine Feng <nfeng@nvidia.com> Reviewed-on: http://git-master/r/380377 Reviewed-by: Harry Hong <hhong@nvidia.com> Reviewed-by: Danny Song <dsong@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/board-tegranote7c-sensors.c38
-rw-r--r--arch/arm/mach-tegra/board-tegratab-sensors.c37
2 files changed, 69 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/board-tegranote7c-sensors.c b/arch/arm/mach-tegra/board-tegranote7c-sensors.c
index d2c00e5159ef..941704c3caba 100644
--- a/arch/arm/mach-tegra/board-tegranote7c-sensors.c
+++ b/arch/arm/mach-tegra/board-tegranote7c-sensors.c
@@ -544,14 +544,34 @@ static struct therm_est_subdevice skin_devs[] = {
},
};
+static struct therm_est_subdevice skin_devs_a02[] = {
+ {
+ .dev_data = "Tdiode",
+ .coeffs = {
+ 2, 1, -1, -2,
+ -3, -3, -3, -3,
+ -2, -2, -1, -1,
+ -1, -1, -1, -1,
+ -1, -2, -3, -6
+ },
+ },
+ {
+ .dev_data = "Tboard",
+ .coeffs = {
+ 117, 43, 6, -11,
+ -20, -14, -7, -1,
+ 4, 1, 2, 2,
+ 2, -2, -11, -24,
+ -34, -31, 4, 99
+ },
+ },
+};
+
static struct therm_est_data skin_data = {
.num_trips = ARRAY_SIZE(skin_trips),
.trips = skin_trips,
- .ndevs = ARRAY_SIZE(skin_devs),
- .devs = skin_devs,
.polling_period = 1100,
.passive_delay = 15000,
- .toffset = 1480,
.tc1 = 10,
.tc2 = 1,
};
@@ -590,9 +610,21 @@ static struct balanced_throttle skin_throttle = {
.throt_tab = skin_throttle_table,
};
+static struct board_info board_info;
static int __init tegranote7c_skin_init(void)
{
if (machine_is_tegranote7c()) {
+ tegra_get_board_info(&board_info);
+ if (board_info.fab == BOARD_FAB_A00 ||
+ board_info.fab == BOARD_FAB_A01) {
+ skin_data.toffset = 1480;
+ skin_data.ndevs = ARRAY_SIZE(skin_devs);
+ skin_data.devs = skin_devs;
+ } else {
+ skin_data.toffset = -638;
+ skin_data.ndevs = ARRAY_SIZE(skin_devs_a02);
+ skin_data.devs = skin_devs_a02;
+ }
balanced_throttle_register(&skin_throttle, "skin-balanced");
tegra_skin_therm_est_device.dev.platform_data = &skin_data;
platform_device_register(&tegra_skin_therm_est_device);
diff --git a/arch/arm/mach-tegra/board-tegratab-sensors.c b/arch/arm/mach-tegra/board-tegratab-sensors.c
index a9a2f9346e9b..1193750caed2 100644
--- a/arch/arm/mach-tegra/board-tegratab-sensors.c
+++ b/arch/arm/mach-tegra/board-tegratab-sensors.c
@@ -619,6 +619,30 @@ static struct therm_est_subdevice skin_devs_p1988[] = {
},
};
+static struct therm_est_subdevice skin_devs_p1988_a02[] = {
+ {
+ .dev_data = "Tdiode",
+ .coeffs = {
+ 2, 1, -1, -2,
+ -3, -3, -3, -3,
+ -2, -2, -1, -1,
+ -1, -1, -1, -1,
+ -1, -2, -3, -6
+ },
+ },
+ {
+ .dev_data = "Tboard",
+ .coeffs = {
+ 117, 43, 6, -11,
+ -20, -14, -7, -1,
+ 4, 1, 2, 2,
+ 2, -2, -11, -24,
+ -34, -31, 4, 99
+ },
+ },
+};
+
+
static struct therm_est_data skin_data = {
.num_trips = ARRAY_SIZE(skin_trips),
.trips = skin_trips,
@@ -668,9 +692,16 @@ static int __init tegratab_skin_init(void)
tegra_get_board_info(&board_info);
if (board_info.board_id == BOARD_P1988) {
/* Use this for P1988. */
- skin_data.toffset = 1480;
- skin_data.ndevs = ARRAY_SIZE(skin_devs_p1988);
- skin_data.devs = skin_devs_p1988;
+ if (board_info.fab == BOARD_FAB_A00 ||
+ board_info.fab == BOARD_FAB_A01) {
+ skin_data.toffset = 1480;
+ skin_data.ndevs = ARRAY_SIZE(skin_devs_p1988);
+ skin_data.devs = skin_devs_p1988;
+ } else {
+ skin_data.toffset = -638;
+ skin_data.ndevs = ARRAY_SIZE(skin_devs_p1988_a02);
+ skin_data.devs = skin_devs_p1988_a02;
+ }
} else if (board_info.board_id == BOARD_E1569 ||
(board_info.board_id == BOARD_P1640 &&
(board_info.fab == BOARD_FAB_A00 ||