summaryrefslogtreecommitdiff
path: root/arch/arm/mach-tegra/board-common.c
diff options
context:
space:
mode:
authorDiwakar Tundlam <dtundlam@nvidia.com>2013-01-11 15:27:43 -0800
committerMandar Padmawar <mpadmawar@nvidia.com>2013-01-15 10:18:29 -0800
commitf36a20dd1bce7314a97f48213f2180b0a7440a97 (patch)
tree95fc662fcd4a632903bcd03764ceb782918ef1b2 /arch/arm/mach-tegra/board-common.c
parent20992e95f04f2d619509cc437133a46b5a11ca7d (diff)
arm: tegra: move common edp cdev init to edp code
Moved repetitive platform initalization of edp features to common areas in preparation for handling these cdevs from soc_therm. Bug 1200075 Change-Id: I8f7fe45d8f0797c72272e5ee1db3707493ec90a5 Signed-off-by: Diwakar Tundlam <dtundlam@nvidia.com> Reviewed-on: http://git-master/r/190765 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Jinyoung Park <jinyoungp@nvidia.com>
Diffstat (limited to 'arch/arm/mach-tegra/board-common.c')
-rw-r--r--arch/arm/mach-tegra/board-common.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/arch/arm/mach-tegra/board-common.c b/arch/arm/mach-tegra/board-common.c
index 2cda070562b9..ee91773a79be 100644
--- a/arch/arm/mach-tegra/board-common.c
+++ b/arch/arm/mach-tegra/board-common.c
@@ -23,11 +23,13 @@
#include <linux/serial_8250.h>
#include <mach/clk.h>
+#include <mach/edp.h>
#include "board.h"
#include "board-common.h"
#include "devices.h"
#include "clock.h"
+#include "dvfs.h"
extern unsigned long debug_uart_port_base;
extern struct clk *debug_uart_clk;
@@ -133,25 +135,23 @@ int uart_console_debug_init(int default_debug_port)
return debug_port_id;
}
-void nct1008_add_cdev_trips(struct nct1008_platform_data *nct1008_data,
- struct tegra_cooling_device *cdev_data)
+static void tegra_add_trip_points(struct nct_trip_temp *trips, int *num_trips,
+ struct tegra_cooling_device *cdev_data)
{
- int i, trip;
+ int i;
struct nct_trip_temp *trip_state;
- if (!nct1008_data || !cdev_data)
+ if (!trips || !num_trips || !cdev_data)
return;
- if (nct1008_data->num_trips + cdev_data->trip_temperatures_num >
- NCT_MAX_TRIPS) {
+ if (*num_trips + cdev_data->trip_temperatures_num > NCT_MAX_TRIPS) {
WARN(1, "%s: cooling device %s has too many trips\n",
__func__, cdev_data->cdev_type);
return;
}
for (i = 0; i < cdev_data->trip_temperatures_num; i++) {
- trip = nct1008_data->num_trips;
- trip_state = &nct1008_data->trips[trip];
+ trip_state = &trips[*num_trips];
trip_state->cdev_type = cdev_data->cdev_type;
trip_state->trip_temp = cdev_data->trip_temperatures[i] * 1000;
@@ -159,6 +159,14 @@ void nct1008_add_cdev_trips(struct nct1008_platform_data *nct1008_data,
trip_state->state = i + 1;
trip_state->hysteresis = 1000;
- nct1008_data->num_trips++;
+ (*num_trips)++;
}
}
+
+void tegra_add_cdev_trips(struct nct_trip_temp *trips, int *num_trips)
+{
+ tegra_add_trip_points(trips, num_trips, tegra_core_edp_get_cdev());
+ tegra_add_trip_points(trips, num_trips, tegra_dvfs_get_cpu_dfll_cdev());
+ tegra_add_trip_points(trips, num_trips, tegra_dvfs_get_cpu_pll_cdev());
+ tegra_add_trip_points(trips, num_trips, tegra_dvfs_get_core_cdev());
+}