Add kernel boot options to disable NumaConnect2 clocksource and clockevents mechanisms.

Signed-off-by: Daniel J Blueman <daniel@numascale.com>

diff --git a/drivers/clocksource/numachip.c b/drivers/clocksource/numachip.c
index b9f6980..fbebeac 100644
--- a/drivers/clocksource/numachip.c
+++ b/drivers/clocksource/numachip.c
@@ -13,6 +13,8 @@
  *
  */
 
+#include <linux/stat.h>
+#include <linux/moduleparam.h>
 #include <linux/clockchips.h>
 
 #include <asm/irq.h>
@@ -20,6 +22,10 @@
 #include <asm/numachip/numachip_csr.h>
 
 static DEFINE_PER_CPU(struct clock_event_device, numachip2_ced);
+static bool clocksource = 1, clockevents = 1;
+
+module_param_named(clocksource, clocksource, bool, S_IWUSR | S_IRUGO);
+module_param_named(clockevents, clockevents, bool, S_IWUSR | S_IRUGO);
 
 static cycles_t numachip2_timer_read(struct clocksource *cs)
 {
@@ -81,13 +87,19 @@ static int __init numachip_timer_init(void)
 	if (numachip_system != 2)
 		return -ENODEV;
 
-	/* Reset timer */
-	numachip2_write64_lcsr(NUMACHIP2_TIMER_RESET, 0);
-	clocksource_register_hz(&numachip2_clocksource, NSEC_PER_SEC);
-
-	/* Setup per-cpu clockevents */
-	x86_platform_ipi_callback = numachip_timer_interrupt;
-	schedule_on_each_cpu(&numachip_timer_each);
+	if (clocksource) {
+		/* Reset timer */
+		numachip2_write64_lcsr(NUMACHIP2_TIMER_RESET, 0);
+		clocksource_register_hz(&numachip2_clocksource, NSEC_PER_SEC);
+	} else
+		pr_err("Disabling Numachip2 clocksource\n");
+
+	if (clockevents) {
+		/* Setup per-cpu clockevents */
+		x86_platform_ipi_callback = numachip_timer_interrupt;
+		schedule_on_each_cpu(&numachip_timer_each);
+	} else
+		pr_err("Disabling Numachip2 clockevents\n");
 
 	return 0;
 }
