Branch data Line data Source code
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 : : 14 : : static DEFINE_PER_CPU(struct clock_event_device, dummy_timer_evt); 15 : : 16 : 1616 : static int dummy_timer_starting_cpu(unsigned int cpu) 17 : : { 18 : 1616 : struct clock_event_device *evt = per_cpu_ptr(&dummy_timer_evt, cpu); 19 : : 20 : 1616 : evt->name = "dummy_timer"; 21 : 1616 : evt->features = CLOCK_EVT_FEAT_PERIODIC | 22 : : CLOCK_EVT_FEAT_ONESHOT | 23 : : CLOCK_EVT_FEAT_DUMMY; 24 : 1616 : evt->rating = 100; 25 : 1616 : evt->cpumask = cpumask_of(cpu); 26 : : 27 : 1616 : clockevents_register_device(evt); 28 : 1616 : return 0; 29 : : } 30 : : 31 : 404 : static int __init dummy_timer_register(void) 32 : : { 33 : 404 : return cpuhp_setup_state(CPUHP_AP_DUMMY_TIMER_STARTING, 34 : : "clockevents/dummy_timer:starting", 35 : : dummy_timer_starting_cpu, NULL); 36 : : } 37 : : early_initcall(dummy_timer_register);