Lines Matching +full:smp +full:- +full:twd +full:- +full:clock
1 // SPDX-License-Identifier: GPL-2.0-only
15 #include <linux/smp.h>
97 disable_percpu_irq(clk->irq); in twd_timer_stop()
117 * The twd clock events must be reprogrammed to account for the new in twd_rate_change()
118 * frequency. The timer is local to a cpu, so cross-call to the in twd_rate_change()
123 (void *)&cnd->new_rate, 1); in twd_rate_change()
173 twd_timer_rate = (0xFFFFFFFFU - count) * (HZ / 5); in twd_calibrate_rate()
185 evt->event_handler(evt); in twd_handler()
202 pr_err("smp_twd: clock not found %d\n", (int) PTR_ERR(twd_clk)); in twd_get_clock()
208 pr_err("smp_twd: clock failed to prepare+enable: %d\n", err); in twd_get_clock()
217 * Setup the local clock events for a CPU.
231 enable_percpu_irq(clk->irq, 0); in twd_timer_setup()
244 clk->name = "local_timer"; in twd_timer_setup()
245 clk->features = twd_features; in twd_timer_setup()
246 clk->rating = 350; in twd_timer_setup()
247 clk->set_state_shutdown = twd_shutdown; in twd_timer_setup()
248 clk->set_state_periodic = twd_set_periodic; in twd_timer_setup()
249 clk->set_state_oneshot = twd_set_oneshot; in twd_timer_setup()
250 clk->tick_resume = twd_shutdown; in twd_timer_setup()
251 clk->set_next_event = twd_set_next_event; in twd_timer_setup()
252 clk->irq = twd_ppi; in twd_timer_setup()
253 clk->cpumask = cpumask_of(cpu); in twd_timer_setup()
257 enable_percpu_irq(clk->irq, 0); in twd_timer_setup()
278 err = -ENOMEM; in twd_local_timer_common_register()
282 err = request_percpu_irq(twd_ppi, twd_handler, "twd", twd_evt); in twd_local_timer_common_register()
284 pr_err("twd: can't register interrupt %d (%d)\n", twd_ppi, err); in twd_local_timer_common_register()
289 "arm/timer/twd:starting", in twd_local_timer_common_register()
293 if (!of_property_read_bool(np, "always-on")) in twd_local_timer_common_register()
322 err = -EINVAL; in twd_local_timer_of_register()
328 err = -ENOMEM; in twd_local_timer_of_register()
338 TIMER_OF_DECLARE(arm_twd_a9, "arm,cortex-a9-twd-timer", twd_local_timer_of_register);
339 TIMER_OF_DECLARE(arm_twd_a5, "arm,cortex-a5-twd-timer", twd_local_timer_of_register);
340 TIMER_OF_DECLARE(arm_twd_11mp, "arm,arm11mp-twd-timer", twd_local_timer_of_register);