sb/intel: Deduplicate vbnv_cmos_failed and rtc_init

* Move all implementations to into common folder.
* Add rtc.c for rtc based functions
Allows all Intel based platforms to use VBOOT_VBNV_CMOS.

Change-Id: Ia494e6d418af6f907c648376674776c54d95ba71
Signed-off-by: Patrick Rudolph <siro@das-labor.org>
Reviewed-on: https://review.coreboot.org/29427
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
diff --git a/src/southbridge/intel/lynxpoint/lpc.c b/src/southbridge/intel/lynxpoint/lpc.c
index cf5959e..9e0ce8a 100644
--- a/src/southbridge/intel/lynxpoint/lpc.c
+++ b/src/southbridge/intel/lynxpoint/lpc.c
@@ -28,7 +28,6 @@
 #include <arch/acpi.h>
 #include <cpu/cpu.h>
 #include <cpu/x86/smm.h>
-#include <elog.h>
 #include <cbmem.h>
 #include <string.h>
 #include "nvs.h"
@@ -37,6 +36,7 @@
 #include <cbmem.h>
 #include <drivers/intel/gma/i915.h>
 #include <southbridge/intel/common/acpi_pirq_gen.h>
+#include <southbridge/intel/common/rtc.h>
 
 #define NMI_OFF	0
 
@@ -288,21 +288,6 @@
 	RCBA16(0x3f02) = reg16;
 }
 
-static void pch_rtc_init(struct device *dev)
-{
-	int rtc_failed = rtc_failure();
-
-	if (rtc_failed) {
-		if (IS_ENABLED(CONFIG_ELOG))
-			elog_add_event(ELOG_TYPE_RTC_RESET);
-		pci_update_config8(dev, GEN_PMCON_3, ~RTC_BATTERY_DEAD, 0);
-	}
-
-	printk(BIOS_DEBUG, "rtc_failed = 0x%x\n", rtc_failed);
-
-	cmos_init(rtc_failed);
-}
-
 /* LynxPoint PCH Power Management init */
 static void lpt_pm_init(struct device *dev)
 {
@@ -576,7 +561,7 @@
 	}
 
 	/* Initialize the real time clock. */
-	pch_rtc_init(dev);
+	sb_rtc_init();
 
 	/* Initialize ISA DMA. */
 	isa_dma_init();