time.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * arch/sh/kernel/time.c
  4. *
  5. * Copyright (C) 1999 Tetsuya Okada & Niibe Yutaka
  6. * Copyright (C) 2000 Philipp Rumpf <[email protected]>
  7. * Copyright (C) 2002 - 2009 Paul Mundt
  8. * Copyright (C) 2002 M. R. Brown <[email protected]>
  9. */
  10. #include <linux/kernel.h>
  11. #include <linux/init.h>
  12. #include <linux/profile.h>
  13. #include <linux/timex.h>
  14. #include <linux/sched.h>
  15. #include <linux/clockchips.h>
  16. #include <linux/platform_device.h>
  17. #include <linux/smp.h>
  18. #include <linux/rtc.h>
  19. #include <asm/clock.h>
  20. #include <asm/rtc.h>
  21. #include <asm/platform_early.h>
  22. static void __init sh_late_time_init(void)
  23. {
  24. /*
  25. * Make sure all compiled-in early timers register themselves.
  26. *
  27. * Run probe() for two "earlytimer" devices, these will be the
  28. * clockevents and clocksource devices respectively. In the event
  29. * that only a clockevents device is available, we -ENODEV on the
  30. * clocksource and the jiffies clocksource is used transparently
  31. * instead. No error handling is necessary here.
  32. */
  33. sh_early_platform_driver_register_all("earlytimer");
  34. sh_early_platform_driver_probe("earlytimer", 2, 0);
  35. }
  36. void __init time_init(void)
  37. {
  38. timer_probe();
  39. clk_init();
  40. late_time_init = sh_late_time_init;
  41. }