1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
6 #include <linux/acpi.h>
7 #include <linux/init.h>
9 #include <linux/clocksource.h>
11 extern struct of_device_id __timer_of_table
[];
13 static const struct of_device_id __timer_of_table_sentinel
14 __used
__section(__timer_of_table_end
);
16 void __init
timer_probe(void)
18 struct device_node
*np
;
19 const struct of_device_id
*match
;
20 of_init_fn_1_ret init_func_ret
;
24 for_each_matching_node_and_match(np
, __timer_of_table
, &match
) {
25 if (!of_device_is_available(np
))
28 init_func_ret
= match
->data
;
30 ret
= init_func_ret(np
);
32 if (ret
!= -EPROBE_DEFER
)
33 pr_err("Failed to initialize '%pOF': %d\n", np
,
41 timers
+= acpi_probe_device_table(timer
);
44 pr_crit("%s: no matching timers found\n", __func__
);