blob: 4b744c4661e20d2cb4f809235e7e629143c7901a [file] [log] [blame]
Peter De Schrijver22b8b852012-01-26 18:22:03 +02001/*
2 * arch/arm/mach-tegra/cpuidle.c
3 *
4 * CPU idle driver for Tegra CPUs
5 *
6 * Copyright (c) 2010-2012, NVIDIA Corporation.
7 * Copyright (c) 2011 Google, Inc.
8 * Author: Colin Cross <ccross@android.com>
9 * Gary King <gking@nvidia.com>
10 *
11 * Rework for 3.3 by Peter De Schrijver <pdeschrijver@nvidia.com>
12 *
13 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful, but WITHOUT
19 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
21 * more details.
22 */
23
24#include <linux/kernel.h>
25#include <linux/module.h>
Peter De Schrijver22b8b852012-01-26 18:22:03 +020026
Joseph Lo0b25e252012-10-31 17:41:15 +080027#include "fuse.h"
28#include "cpuidle.h"
Peter De Schrijver22b8b852012-01-26 18:22:03 +020029
Peter De Schrijver22b8b852012-01-26 18:22:03 +020030static int __init tegra_cpuidle_init(void)
31{
32 int ret;
Peter De Schrijver22b8b852012-01-26 18:22:03 +020033
Joseph Lo0b25e252012-10-31 17:41:15 +080034 switch (tegra_chip_id) {
35 case TEGRA20:
36 ret = tegra20_cpuidle_init();
37 break;
38 case TEGRA30:
39 ret = tegra30_cpuidle_init();
40 break;
Joseph Lo51dc5252013-01-21 17:49:06 +080041 case TEGRA114:
42 ret = tegra114_cpuidle_init();
43 break;
Joseph Lo0b25e252012-10-31 17:41:15 +080044 default:
45 ret = -ENODEV;
46 break;
Peter De Schrijver22b8b852012-01-26 18:22:03 +020047 }
48
Joseph Lo0b25e252012-10-31 17:41:15 +080049 return ret;
Peter De Schrijver22b8b852012-01-26 18:22:03 +020050}
51device_initcall(tegra_cpuidle_init);