linux/drivers/clocksource/dummy_timer.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0-only
   2/*
   3 *  linux/drivers/clocksource/dummy_timer.c
   4 *
   5 *  Copyright (C) 2013 ARM Ltd.
   6 *  All Rights Reserved
   7 */
   8#include <linux/clockchips.h>
   9#include <linux/cpu.h>
  10#include <linux/init.h>
  11#include <linux/percpu.h>
  12#include <linux/cpumask.h>
  13
  14static DEFINE_PER_CPU(struct clock_event_device, dummy_timer_evt);
  15
  16static int dummy_timer_starting_cpu(unsigned int cpu)
  17{
  18        struct clock_event_device *evt = per_cpu_ptr(&dummy_timer_evt, cpu);
  19
  20        evt->name       = "dummy_timer";
  21        evt->features   = CLOCK_EVT_FEAT_PERIODIC |
  22                          CLOCK_EVT_FEAT_ONESHOT |
  23                          CLOCK_EVT_FEAT_DUMMY;
  24        evt->rating     = 100;
  25        evt->cpumask    = cpumask_of(cpu);
  26
  27        clockevents_register_device(evt);
  28        return 0;
  29}
  30
  31static int __init dummy_timer_register(void)
  32{
  33        return cpuhp_setup_state(CPUHP_AP_DUMMY_TIMER_STARTING,
  34                                 "clockevents/dummy_timer:starting",
  35                                 dummy_timer_starting_cpu, NULL);
  36}
  37early_initcall(dummy_timer_register);
  38