linux/arch/arm/mach-shmobile/cpuidle.c
<<
>>
Prefs
   1/*
   2 * CPUIdle support code for SH-Mobile ARM
   3 *
   4 *  Copyright (C) 2011 Magnus Damm
   5 *
   6 * This file is subject to the terms and conditions of the GNU General Public
   7 * License.  See the file "COPYING" in the main directory of this archive
   8 * for more details.
   9 */
  10
  11#include <linux/pm.h>
  12#include <linux/cpuidle.h>
  13#include <linux/suspend.h>
  14#include <linux/module.h>
  15#include <linux/err.h>
  16#include <asm/cpuidle.h>
  17#include <asm/io.h>
  18
  19static struct cpuidle_driver shmobile_cpuidle_default_driver = {
  20        .name                   = "shmobile_cpuidle",
  21        .owner                  = THIS_MODULE,
  22        .states[0]              = ARM_CPUIDLE_WFI_STATE,
  23        .safe_state_index       = 0, /* C1 */
  24        .state_count            = 1,
  25};
  26
  27static struct cpuidle_driver *cpuidle_drv = &shmobile_cpuidle_default_driver;
  28
  29void __init shmobile_cpuidle_set_driver(struct cpuidle_driver *drv)
  30{
  31        cpuidle_drv = drv;
  32}
  33
  34int __init shmobile_cpuidle_init(void)
  35{
  36        return cpuidle_register(cpuidle_drv, NULL);
  37}
  38