diff options
author | Diwakar Tundlam <dtundlam@nvidia.com> | 2013-01-11 15:27:43 -0800 |
---|---|---|
committer | Mandar Padmawar <mpadmawar@nvidia.com> | 2013-01-15 10:18:29 -0800 |
commit | f36a20dd1bce7314a97f48213f2180b0a7440a97 (patch) | |
tree | 95fc662fcd4a632903bcd03764ceb782918ef1b2 /arch/arm/mach-tegra/board-common.c | |
parent | 20992e95f04f2d619509cc437133a46b5a11ca7d (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.c | 26 |
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()); +} |