linux/drivers/clocksource/dummy_timer.c
<<
>>
Prefs
   1/*
   2 *  linux/drivers/clocksource/dummy_timer.c
   3 *
   4 *  Copyright (C) 2013 ARM Ltd.
   5 *  All Rights Reserved
   6 *
   7 * This program is free software; you can redistribute it and/or modify
   8 * it under the terms of the GNU General Public License version 2 as
   9 * published by the Free Software Foundation.
  10 */
  11#include <linux/clockchips.h>
  12#include <linux/cpu.h>
  13#include <linux/init.h>
  14#include <linux/percpu.h>
  15#include <linux/cpumask.h>
  16
  17static DEFINE_PER_CPU(struct clock_event_device, dummy_timer_evt);
  18
  19static int dummy_timer_starting_cpu(unsigned int cpu)
  20{
  21        struct clock_event_device *evt = per_cpu_ptr(&dummy_timer_evt, cpu);
  22
  23        evt->name       = "dummy_timer";
  24        evt->features   = CLOCK_EVT_FEAT_PERIODIC |
  25                          CLOCK_EVT_FEAT_ONESHOT |
  26                          CLOCK_EVT_FEAT_DUMMY;
  27        evt->rating     = 100;
  28        evt->cpumask    = cpumask_of(cpu);
  29
  30        clockevents_register_device(evt);
  31        return 0;
  32}
  33
  34static int __init dummy_timer_register(void)
  35{
  36        return cpuhp_setup_state(CPUHP_AP_DUMMY_TIMER_STARTING,
  37                                 "clockevents/dummy_timer:starting",
  38                                 dummy_timer_starting_cpu, NULL);
  39}
  40early_initcall(dummy_timer_register);
  41