cpuidle-imx5.c 790 B

12345678910111213141516171819202122232425262728293031323334
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2012 Freescale Semiconductor, Inc.
  4. */
  5. #include <linux/cpuidle.h>
  6. #include <linux/module.h>
  7. #include <asm/system_misc.h>
  8. #include "cpuidle.h"
  9. static int imx5_cpuidle_enter(struct cpuidle_device *dev,
  10. struct cpuidle_driver *drv, int index)
  11. {
  12. arm_pm_idle();
  13. return index;
  14. }
  15. static struct cpuidle_driver imx5_cpuidle_driver = {
  16. .name = "imx5_cpuidle",
  17. .owner = THIS_MODULE,
  18. .states[0] = {
  19. .enter = imx5_cpuidle_enter,
  20. .exit_latency = 2,
  21. .target_residency = 1,
  22. .name = "IMX5 SRPG",
  23. .desc = "CPU state retained,powered off",
  24. },
  25. .state_count = 1,
  26. };
  27. int __init imx5_cpuidle_init(void)
  28. {
  29. return cpuidle_register(&imx5_cpuidle_driver, NULL);
  30. }