1/* 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> 26 27#include <soc/tegra/fuse.h> 28 29#include "cpuidle.h" 30 31void __init tegra_cpuidle_init(void) 32{ 33 switch (tegra_get_chip_id()) { 34 case TEGRA20: 35 if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC)) 36 tegra20_cpuidle_init(); 37 break; 38 case TEGRA30: 39 if (IS_ENABLED(CONFIG_ARCH_TEGRA_3x_SOC)) 40 tegra30_cpuidle_init(); 41 break; 42 case TEGRA114: 43 case TEGRA124: 44 if (IS_ENABLED(CONFIG_ARCH_TEGRA_114_SOC) || 45 IS_ENABLED(CONFIG_ARCH_TEGRA_124_SOC)) 46 tegra114_cpuidle_init(); 47 break; 48 } 49} 50 51void tegra_cpuidle_pcie_irqs_in_use(void) 52{ 53 switch (tegra_get_chip_id()) { 54 case TEGRA20: 55 if (IS_ENABLED(CONFIG_ARCH_TEGRA_2x_SOC)) 56 tegra20_cpuidle_pcie_irqs_in_use(); 57 break; 58 } 59} 60