Lines Matching +full:gic +full:- +full:timer
1 // SPDX-License-Identifier: GPL-2.0
4 #define pr_fmt(fmt) "mips-gic-timer: " fmt
17 #include <asm/mips-cps.h>
55 int cpu = cpumask_first(evt->cpumask); in gic_next_event()
67 res = ((int)(gic_read_count() - cnt) >= 0) ? -ETIME : 0; in gic_next_event()
76 cd->event_handler(cd); in gic_compare_interrupt()
84 .name = "timer",
90 cd->name = "MIPS GIC"; in gic_clockevent_cpu_init()
91 cd->features = CLOCK_EVT_FEAT_ONESHOT | in gic_clockevent_cpu_init()
94 cd->rating = 350; in gic_clockevent_cpu_init()
95 cd->irq = gic_timer_irq; in gic_clockevent_cpu_init()
96 cd->cpumask = cpumask_of(cpu); in gic_clockevent_cpu_init()
97 cd->set_next_event = gic_next_event; in gic_clockevent_cpu_init()
129 on_each_cpu(gic_update_frequency, (void *)cnd->new_rate, 1); in gic_clk_notifier()
150 return -ENXIO; in gic_clockevent_init()
159 "clockevents/mips/gic/timer:starting", in gic_clockevent_init()
170 .name = "GIC",
183 pr_info("GIC timer is unstable due to %s\n", reason); in gic_clocksource_unstable()
218 if (!mips_gic_present() || !node->parent || in gic_clocksource_of_init()
219 !of_device_is_compatible(node->parent, "mti,gic")) { in gic_clocksource_of_init()
221 return -ENXIO; in gic_clocksource_of_init()
234 } else if (of_property_read_u32(node, "clock-frequency", in gic_clocksource_of_init()
237 return -EINVAL; in gic_clocksource_of_init()
242 return -EINVAL; in gic_clocksource_of_init()
259 * It's safe to use the MIPS GIC timer as a sched clock source only if in gic_clocksource_of_init()
272 TIMER_OF_DECLARE(mips_gic_timer, "mti,gic-timer",