more intel mfd and watchdog patches
diff --git a/patches.intel/mfd-lpc_ich-add-device-ids-for-intel-9-series-pch.patch b/patches.intel/mfd-lpc_ich-add-device-ids-for-intel-9-series-pch.patch
new file mode 100644
index 0000000..1613c2c
--- /dev/null
+++ b/patches.intel/mfd-lpc_ich-add-device-ids-for-intel-9-series-pch.patch
@@ -0,0 +1,63 @@
+From ltsi-dev-bounces@lists.linuxfoundation.org Wed Nov  5 10:40:18 2014
+From: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Date: Wed,  5 Nov 2014 09:39:18 +0800
+Subject: [LTSI-dev] [PATCH 13/16] mfd: lpc_ich: Add Device IDs for Intel 9 Series PCH
+To: LTSI Mailing List <ltsi-dev@lists.linuxfoundation.org>
+Cc: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Message-ID: <1415151561-16047-14-git-send-email-rebecca.swee.fun.chang@intel.com>
+
+
+From: James Ralston <james.d.ralston@intel.com>
+
+This patch adds the LPC Device IDs for the Intel 9 Series PCH.
+
+Signed-off-by: James Ralston <james.d.ralston@intel.com>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+(cherry picked from commit fea31042ff613145c7784e2ce454bf3c151b97ba)
+
+Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+---
+ drivers/mfd/lpc_ich.c |   11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/drivers/mfd/lpc_ich.c
++++ b/drivers/mfd/lpc_ich.c
+@@ -54,6 +54,7 @@
+  *	document number TBD : Avoton SoC
+  *	document number TBD : Coleto Creek
+  *	document number TBD : Wildcat Point-LP
++ *	document number TBD : 9 Series
+  */
+ 
+ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+@@ -217,6 +218,7 @@ enum lpc_chipsets {
+ 	LPC_COLETO,	/* Coleto Creek */
+ 	LPC_WPT_LP,	/* Wildcat Point-LP */
+ 	LPC_BRASWELL,	/* Braswell SoC */
++	LPC_9S,		/* 9 Series */
+ };
+ 
+ static struct lpc_ich_info lpc_chipset_info[] = {
+@@ -524,6 +526,10 @@ static struct lpc_ich_info lpc_chipset_i
+ 		.name = "Braswell SoC",
+ 		.iTCO_version = 3,
+ 	},
++	[LPC_9S] = {
++		.name = "9 Series",
++		.iTCO_version = 2,
++	},
+ };
+ 
+ /*
+@@ -751,6 +757,11 @@ static const struct pci_device_id lpc_ic
+ 	{ PCI_VDEVICE(INTEL, 0x9cc7), LPC_WPT_LP},
+ 	{ PCI_VDEVICE(INTEL, 0x9cc9), LPC_WPT_LP},
+ 	{ PCI_VDEVICE(INTEL, 0x229c), LPC_BRASWELL},
++	{ PCI_VDEVICE(INTEL, 0x8cc1), LPC_9S},
++	{ PCI_VDEVICE(INTEL, 0x8cc2), LPC_9S},
++	{ PCI_VDEVICE(INTEL, 0x8cc3), LPC_9S},
++	{ PCI_VDEVICE(INTEL, 0x8cc4), LPC_9S},
++	{ PCI_VDEVICE(INTEL, 0x8cc6), LPC_9S},
+ 	{ 0, },			/* End of list */
+ };
+ MODULE_DEVICE_TABLE(pci, lpc_ich_ids);
diff --git a/patches.intel/mfd-lpc_ich-add-pci-id-for-intel-braswell.patch b/patches.intel/mfd-lpc_ich-add-pci-id-for-intel-braswell.patch
new file mode 100644
index 0000000..fe29dbf
--- /dev/null
+++ b/patches.intel/mfd-lpc_ich-add-pci-id-for-intel-braswell.patch
@@ -0,0 +1,53 @@
+From ltsi-dev-bounces@lists.linuxfoundation.org Wed Nov  5 10:40:15 2014
+From: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Date: Wed,  5 Nov 2014 09:39:17 +0800
+Subject: [LTSI-dev] [PATCH 12/16] mfd: lpc_ich: Add PCI ID for Intel Braswell
+To: LTSI Mailing List <ltsi-dev@lists.linuxfoundation.org>
+Cc: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Message-ID: <1415151561-16047-13-git-send-email-rebecca.swee.fun.chang@intel.com>
+
+
+From: Alan Cox <alan@linux.intel.com>
+
+This is the same as used in Baytrail so add the new PCI ID to the driver's
+list of supported IDs.
+
+Signed-off-by: Alan Cox <alan@linux.intel.com>
+Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+(cherry picked from commit ff0c9da013d2c9f1ec232926a54e536ab48c6678)
+
+Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+---
+ drivers/mfd/lpc_ich.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/mfd/lpc_ich.c
++++ b/drivers/mfd/lpc_ich.c
+@@ -216,6 +216,7 @@ enum lpc_chipsets {
+ 	LPC_BAYTRAIL,   /* Bay Trail SoC */
+ 	LPC_COLETO,	/* Coleto Creek */
+ 	LPC_WPT_LP,	/* Wildcat Point-LP */
++	LPC_BRASWELL,	/* Braswell SoC */
+ };
+ 
+ static struct lpc_ich_info lpc_chipset_info[] = {
+@@ -519,6 +520,10 @@ static struct lpc_ich_info lpc_chipset_i
+ 		.name = "Wildcat Point_LP",
+ 		.iTCO_version = 2,
+ 	},
++	[LPC_BRASWELL] = {
++		.name = "Braswell SoC",
++		.iTCO_version = 3,
++	},
+ };
+ 
+ /*
+@@ -745,6 +750,7 @@ static const struct pci_device_id lpc_ic
+ 	{ PCI_VDEVICE(INTEL, 0x9cc6), LPC_WPT_LP},
+ 	{ PCI_VDEVICE(INTEL, 0x9cc7), LPC_WPT_LP},
+ 	{ PCI_VDEVICE(INTEL, 0x9cc9), LPC_WPT_LP},
++	{ PCI_VDEVICE(INTEL, 0x229c), LPC_BRASWELL},
+ 	{ 0, },			/* End of list */
+ };
+ MODULE_DEVICE_TABLE(pci, lpc_ich_ids);
diff --git a/patches.intel/mfd-lpc_ich-add-support-for-intel-bay-trail-soc.patch b/patches.intel/mfd-lpc_ich-add-support-for-intel-bay-trail-soc.patch
new file mode 100644
index 0000000..a403a05
--- /dev/null
+++ b/patches.intel/mfd-lpc_ich-add-support-for-intel-bay-trail-soc.patch
@@ -0,0 +1,53 @@
+From ltsi-dev-bounces@lists.linuxfoundation.org Wed Nov  5 10:40:08 2014
+From: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Date: Wed,  5 Nov 2014 09:39:15 +0800
+Subject: [LTSI-dev] [PATCH 10/16] mfd: lpc_ich: Add support for Intel Bay Trail SoC
+To: LTSI Mailing List <ltsi-dev@lists.linuxfoundation.org>
+Cc: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Message-ID: <1415151561-16047-11-git-send-email-rebecca.swee.fun.chang@intel.com>
+
+
+From: Peter Tyser <ptyser@xes-inc.com>
+
+This patch adds the LPC Controller Device IDs for Watchdog and GPIO for
+the Intel Bay Trail Atom SoC.
+
+Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+(cherry picked from commit 6111ec70357022ccd037399c13f69900431850b4)
+
+Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+---
+ drivers/mfd/lpc_ich.c |    6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/mfd/lpc_ich.c
++++ b/drivers/mfd/lpc_ich.c
+@@ -213,6 +213,7 @@ enum lpc_chipsets {
+ 	LPC_LPT_LP,	/* Lynx Point-LP */
+ 	LPC_WBG,	/* Wellsburg */
+ 	LPC_AVN,	/* Avoton SoC */
++	LPC_BAYTRAIL,   /* Bay Trail SoC */
+ 	LPC_COLETO,	/* Coleto Creek */
+ 	LPC_WPT_LP,	/* Wildcat Point-LP */
+ };
+@@ -505,6 +506,10 @@ static struct lpc_ich_info lpc_chipset_i
+ 		.iTCO_version = 3,
+ 		.gpio_version = AVOTON_GPIO,
+ 	},
++	[LPC_BAYTRAIL] = {
++		.name = "Bay Trail SoC",
++		.iTCO_version = 3,
++	},
+ 	[LPC_COLETO] = {
+ 		.name = "Coleto Creek",
+ 		.iTCO_version = 2,
+@@ -730,6 +735,7 @@ static const struct pci_device_id lpc_ic
+ 	{ PCI_VDEVICE(INTEL, 0x1f39), LPC_AVN},
+ 	{ PCI_VDEVICE(INTEL, 0x1f3a), LPC_AVN},
+ 	{ PCI_VDEVICE(INTEL, 0x1f3b), LPC_AVN},
++	{ PCI_VDEVICE(INTEL, 0x0f1c), LPC_BAYTRAIL},
+ 	{ PCI_VDEVICE(INTEL, 0x2390), LPC_COLETO},
+ 	{ PCI_VDEVICE(INTEL, 0x9cc1), LPC_WPT_LP},
+ 	{ PCI_VDEVICE(INTEL, 0x9cc2), LPC_WPT_LP},
diff --git a/patches.intel/mfd-lpc_ich-enable-gpio-for-panther-point.patch b/patches.intel/mfd-lpc_ich-enable-gpio-for-panther-point.patch
new file mode 100644
index 0000000..5611e58
--- /dev/null
+++ b/patches.intel/mfd-lpc_ich-enable-gpio-for-panther-point.patch
@@ -0,0 +1,32 @@
+From ltsi-dev-bounces@lists.linuxfoundation.org Wed Nov  5 10:40:11 2014
+From: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Date: Wed,  5 Nov 2014 09:39:16 +0800
+Subject: [LTSI-dev] [PATCH 11/16] mfd: lpc_ich: Enable GPIO for Panther Point
+To: LTSI Mailing List <ltsi-dev@lists.linuxfoundation.org>
+Cc: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Message-ID: <1415151561-16047-12-git-send-email-rebecca.swee.fun.chang@intel.com>
+
+
+From: Guenter Roeck <linux@roeck-us.net>
+
+Panther Point PCH GPIO configuration is similar to V5 PCHs.
+
+Signed-off-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+(cherry picked from commit 62cf2cdb99c7e870ab857bdd617e728790f8c43c)
+
+Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+---
+ drivers/mfd/lpc_ich.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/mfd/lpc_ich.c
++++ b/drivers/mfd/lpc_ich.c
+@@ -488,6 +488,7 @@ static struct lpc_ich_info lpc_chipset_i
+ 	[LPC_PPT] = {
+ 		.name = "Panther Point",
+ 		.iTCO_version = 2,
++		.gpio_version = ICH_V5_GPIO,
+ 	},
+ 	[LPC_LPT] = {
+ 		.name = "Lynx Point",
diff --git a/patches.intel/watchdog-fix-checkpatch-warnings-and-error.patch b/patches.intel/watchdog-fix-checkpatch-warnings-and-error.patch
new file mode 100644
index 0000000..bdf7acb
--- /dev/null
+++ b/patches.intel/watchdog-fix-checkpatch-warnings-and-error.patch
@@ -0,0 +1,126 @@
+From ltsi-dev-bounces@lists.linuxfoundation.org Wed Nov  5 10:40:26 2014
+From: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Date: Wed,  5 Nov 2014 09:39:20 +0800
+Subject: [LTSI-dev] [PATCH 15/16] watchdog: fix checkpatch warnings and error
+To: LTSI Mailing List <ltsi-dev@lists.linuxfoundation.org>
+Cc: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Message-ID: <1415151561-16047-16-git-send-email-rebecca.swee.fun.chang@intel.com>
+
+
+From: Jingoo Han <jg1.han@samsung.com>
+
+Fix the following checkpatch warnings and error:
+  WARNING: quoted string split across lines
+  WARNING: braces {} are not necessary for single statement blocks
+  WARNING: __initdata should be placed after ibmasr_id_table[]
+  WARNING: please, no space before tabs
+  ERROR: do not initialise statics to 0 or NULL
+
+Signed-off-by: Jingoo Han <jg1.han@samsung.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
+(cherry picked from commit 5f5e19093b2fa592720810154f15ffe51aa9277f)
+
+Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+---
+ drivers/watchdog/ep93xx_wdt.c   |    6 +++---
+ drivers/watchdog/iTCO_wdt.c     |    6 +++---
+ drivers/watchdog/ibmasr.c       |    2 +-
+ drivers/watchdog/pc87413_wdt.c  |    7 +++----
+ drivers/watchdog/softdog.c      |    2 +-
+ drivers/watchdog/w83697hf_wdt.c |    4 ++--
+ 6 files changed, 13 insertions(+), 14 deletions(-)
+
+--- a/drivers/watchdog/ep93xx_wdt.c
++++ b/drivers/watchdog/ep93xx_wdt.c
+@@ -172,9 +172,9 @@ static struct platform_driver ep93xx_wdt
+ 
+ module_platform_driver(ep93xx_wdt_driver);
+ 
+-MODULE_AUTHOR("Ray Lehtiniemi <rayl@mail.com>,"
+-		"Alessandro Zummo <a.zummo@towertech.it>,"
+-		"H Hartley Sweeten <hsweeten@visionengravers.com>");
++MODULE_AUTHOR("Ray Lehtiniemi <rayl@mail.com>");
++MODULE_AUTHOR("Alessandro Zummo <a.zummo@towertech.it>");
++MODULE_AUTHOR("H Hartley Sweeten <hsweeten@visionengravers.com>");
+ MODULE_DESCRIPTION("EP93xx Watchdog");
+ MODULE_LICENSE("GPL");
+ MODULE_VERSION(WDT_VERSION);
+--- a/drivers/watchdog/iTCO_wdt.c
++++ b/drivers/watchdog/iTCO_wdt.c
+@@ -370,15 +370,15 @@ static const struct watchdog_info ident
+ static const struct watchdog_ops iTCO_wdt_ops = {
+ 	.owner =		THIS_MODULE,
+ 	.start =		iTCO_wdt_start,
+-	.stop = 		iTCO_wdt_stop,
+-	.ping = 		iTCO_wdt_ping,
++	.stop =			iTCO_wdt_stop,
++	.ping =			iTCO_wdt_ping,
+ 	.set_timeout =		iTCO_wdt_set_timeout,
+ 	.get_timeleft =		iTCO_wdt_get_timeleft,
+ };
+ 
+ static struct watchdog_device iTCO_wdt_watchdog_dev = {
+ 	.info =		&ident,
+-	.ops = 		&iTCO_wdt_ops,
++	.ops =		&iTCO_wdt_ops,
+ };
+ 
+ /*
+--- a/drivers/watchdog/ibmasr.c
++++ b/drivers/watchdog/ibmasr.c
+@@ -360,7 +360,7 @@ struct ibmasr_id {
+ 	int type;
+ };
+ 
+-static struct ibmasr_id __initdata ibmasr_id_table[] = {
++static struct ibmasr_id ibmasr_id_table[] __initdata = {
+ 	{ "IBM Automatic Server Restart - eserver xSeries 220", ASMTYPE_TOPAZ },
+ 	{ "IBM Automatic Server Restart - Machine Type 8673", ASMTYPE_PEARL },
+ 	{ "IBM Automatic Server Restart - Machine Type 8480", ASMTYPE_JASPER },
+--- a/drivers/watchdog/pc87413_wdt.c
++++ b/drivers/watchdog/pc87413_wdt.c
+@@ -512,9 +512,8 @@ static int __init pc87413_init(void)
+ 		return -EBUSY;
+ 
+ 	ret = register_reboot_notifier(&pc87413_notifier);
+-	if (ret != 0) {
++	if (ret != 0)
+ 		pr_err("cannot register reboot notifier (err=%d)\n", ret);
+-	}
+ 
+ 	ret = misc_register(&pc87413_miscdev);
+ 	if (ret != 0) {
+@@ -575,8 +574,8 @@ static void __exit pc87413_exit(void)
+ module_init(pc87413_init);
+ module_exit(pc87413_exit);
+ 
+-MODULE_AUTHOR("Sven Anders <anders@anduras.de>, "
+-		"Marcus Junker <junker@anduras.de>,");
++MODULE_AUTHOR("Sven Anders <anders@anduras.de>");
++MODULE_AUTHOR("Marcus Junker <junker@anduras.de>");
+ MODULE_DESCRIPTION("PC87413 WDT driver");
+ MODULE_LICENSE("GPL");
+ 
+--- a/drivers/watchdog/softdog.c
++++ b/drivers/watchdog/softdog.c
+@@ -62,7 +62,7 @@ MODULE_PARM_DESC(nowayout,
+ 		"Watchdog cannot be stopped once started (default="
+ 				__MODULE_STRING(WATCHDOG_NOWAYOUT) ")");
+ 
+-static int soft_noboot = 0;
++static int soft_noboot;
+ module_param(soft_noboot, int, 0);
+ MODULE_PARM_DESC(soft_noboot,
+ 	"Softdog action, set to 1 to ignore reboots, 0 to reboot (default=0)");
+--- a/drivers/watchdog/w83697hf_wdt.c
++++ b/drivers/watchdog/w83697hf_wdt.c
+@@ -455,6 +455,6 @@ module_init(wdt_init);
+ module_exit(wdt_exit);
+ 
+ MODULE_LICENSE("GPL");
+-MODULE_AUTHOR("Marcus Junker <junker@anduras.de>, "
+-		"Samuel Tardieu <sam@rfc1149.net>");
++MODULE_AUTHOR("Marcus Junker <junker@anduras.de>");
++MODULE_AUTHOR("Samuel Tardieu <sam@rfc1149.net>");
+ MODULE_DESCRIPTION("w83697hf/hg WDT driver");
diff --git a/patches.intel/watchdog-itco_wdt-add-support-for-v3-silicon.patch b/patches.intel/watchdog-itco_wdt-add-support-for-v3-silicon.patch
new file mode 100644
index 0000000..3a0e612
--- /dev/null
+++ b/patches.intel/watchdog-itco_wdt-add-support-for-v3-silicon.patch
@@ -0,0 +1,320 @@
+From ltsi-dev-bounces@lists.linuxfoundation.org Wed Nov  5 10:40:22 2014
+From: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Date: Wed,  5 Nov 2014 09:39:19 +0800
+Subject: [LTSI-dev] [PATCH 14/16] watchdog: iTCO_wdt: Add support for v3 silicon
+To: LTSI Mailing List <ltsi-dev@lists.linuxfoundation.org>
+Cc: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Message-ID: <1415151561-16047-15-git-send-email-rebecca.swee.fun.chang@intel.com>
+
+
+From: Peter Tyser <ptyser@xes-inc.com>
+
+Some new Atom's, eg Avoton and Bay Trail, have slightly different iTCO
+functionality:
+- The watchdog timer ticks at 1 second instead of .6 seconds
+
+- Some 8 and 16-bit registers were combined into 32-bit registers
+
+- Some registers were removed (DAT_IN, DAT_OUT, MESSAGE)
+
+- The BOOT_STS field in TCO_STS was removed
+
+- The NO_REBOOT bit is in the PMC area instead of GCS
+
+Update the driver to support the above changes and bump the version to
+1.11.
+
+Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
+Tested-by: Rajat Jain <rajatjain@juniper.net>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+(cherry picked from commit 24b3a1670b47e75be633ae0b5c07945c446f9d29)
+
+Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+---
+ drivers/watchdog/iTCO_wdt.c |  137 ++++++++++++++++++++++++++------------------
+ 1 file changed, 82 insertions(+), 55 deletions(-)
+
+--- a/drivers/watchdog/iTCO_wdt.c
++++ b/drivers/watchdog/iTCO_wdt.c
+@@ -48,7 +48,7 @@
+ 
+ /* Module and version information */
+ #define DRV_NAME	"iTCO_wdt"
+-#define DRV_VERSION	"1.10"
++#define DRV_VERSION	"1.11"
+ 
+ /* Includes */
+ #include <linux/module.h>		/* For module specific items */
+@@ -92,9 +92,12 @@ static struct {		/* this is private data
+ 	unsigned int iTCO_version;
+ 	struct resource *tco_res;
+ 	struct resource *smi_res;
+-	struct resource *gcs_res;
+-	/* NO_REBOOT flag is Memory-Mapped GCS register bit 5 (TCO version 2)*/
+-	unsigned long __iomem *gcs;
++	/*
++	 * NO_REBOOT flag is Memory-Mapped GCS register bit 5 (TCO version 2),
++	 * or memory-mapped PMC register bit 4 (TCO version 3).
++	 */
++	struct resource *gcs_pmc_res;
++	unsigned long __iomem *gcs_pmc;
+ 	/* the lock for io operations */
+ 	spinlock_t io_lock;
+ 	struct platform_device *dev;
+@@ -125,11 +128,19 @@ MODULE_PARM_DESC(turn_SMI_watchdog_clear
+  * Some TCO specific functions
+  */
+ 
+-static inline unsigned int seconds_to_ticks(int seconds)
++/*
++ * The iTCO v1 and v2's internal timer is stored as ticks which decrement
++ * every 0.6 seconds.  v3's internal timer is stored as seconds (some
++ * datasheets incorrectly state 0.6 seconds).
++ */
++static inline unsigned int seconds_to_ticks(int secs)
+ {
+-	/* the internal timer is stored as ticks which decrement
+-	 * every 0.6 seconds */
+-	return (seconds * 10) / 6;
++	return iTCO_wdt_private.iTCO_version == 3 ? secs : (secs * 10) / 6;
++}
++
++static inline unsigned int ticks_to_seconds(int ticks)
++{
++	return iTCO_wdt_private.iTCO_version == 3 ? ticks : (ticks * 6) / 10;
+ }
+ 
+ static void iTCO_wdt_set_NO_REBOOT_bit(void)
+@@ -137,10 +148,14 @@ static void iTCO_wdt_set_NO_REBOOT_bit(v
+ 	u32 val32;
+ 
+ 	/* Set the NO_REBOOT bit: this disables reboots */
+-	if (iTCO_wdt_private.iTCO_version == 2) {
+-		val32 = readl(iTCO_wdt_private.gcs);
++	if (iTCO_wdt_private.iTCO_version == 3) {
++		val32 = readl(iTCO_wdt_private.gcs_pmc);
++		val32 |= 0x00000010;
++		writel(val32, iTCO_wdt_private.gcs_pmc);
++	} else if (iTCO_wdt_private.iTCO_version == 2) {
++		val32 = readl(iTCO_wdt_private.gcs_pmc);
+ 		val32 |= 0x00000020;
+-		writel(val32, iTCO_wdt_private.gcs);
++		writel(val32, iTCO_wdt_private.gcs_pmc);
+ 	} else if (iTCO_wdt_private.iTCO_version == 1) {
+ 		pci_read_config_dword(iTCO_wdt_private.pdev, 0xd4, &val32);
+ 		val32 |= 0x00000002;
+@@ -154,12 +169,20 @@ static int iTCO_wdt_unset_NO_REBOOT_bit(
+ 	u32 val32;
+ 
+ 	/* Unset the NO_REBOOT bit: this enables reboots */
+-	if (iTCO_wdt_private.iTCO_version == 2) {
+-		val32 = readl(iTCO_wdt_private.gcs);
++	if (iTCO_wdt_private.iTCO_version == 3) {
++		val32 = readl(iTCO_wdt_private.gcs_pmc);
++		val32 &= 0xffffffef;
++		writel(val32, iTCO_wdt_private.gcs_pmc);
++
++		val32 = readl(iTCO_wdt_private.gcs_pmc);
++		if (val32 & 0x00000010)
++			ret = -EIO;
++	} else if (iTCO_wdt_private.iTCO_version == 2) {
++		val32 = readl(iTCO_wdt_private.gcs_pmc);
+ 		val32 &= 0xffffffdf;
+-		writel(val32, iTCO_wdt_private.gcs);
++		writel(val32, iTCO_wdt_private.gcs_pmc);
+ 
+-		val32 = readl(iTCO_wdt_private.gcs);
++		val32 = readl(iTCO_wdt_private.gcs_pmc);
+ 		if (val32 & 0x00000020)
+ 			ret = -EIO;
+ 	} else if (iTCO_wdt_private.iTCO_version == 1) {
+@@ -192,7 +215,7 @@ static int iTCO_wdt_start(struct watchdo
+ 
+ 	/* Force the timer to its reload value by writing to the TCO_RLD
+ 	   register */
+-	if (iTCO_wdt_private.iTCO_version == 2)
++	if (iTCO_wdt_private.iTCO_version >= 2)
+ 		outw(0x01, TCO_RLD);
+ 	else if (iTCO_wdt_private.iTCO_version == 1)
+ 		outb(0x01, TCO_RLD);
+@@ -240,9 +263,9 @@ static int iTCO_wdt_ping(struct watchdog
+ 	iTCO_vendor_pre_keepalive(iTCO_wdt_private.smi_res, wd_dev->timeout);
+ 
+ 	/* Reload the timer by writing to the TCO Timer Counter register */
+-	if (iTCO_wdt_private.iTCO_version == 2)
++	if (iTCO_wdt_private.iTCO_version >= 2) {
+ 		outw(0x01, TCO_RLD);
+-	else if (iTCO_wdt_private.iTCO_version == 1) {
++	} else if (iTCO_wdt_private.iTCO_version == 1) {
+ 		/* Reset the timeout status bit so that the timer
+ 		 * needs to count down twice again before rebooting */
+ 		outw(0x0008, TCO1_STS);	/* write 1 to clear bit */
+@@ -270,14 +293,14 @@ static int iTCO_wdt_set_timeout(struct w
+ 	/* "Values of 0h-3h are ignored and should not be attempted" */
+ 	if (tmrval < 0x04)
+ 		return -EINVAL;
+-	if (((iTCO_wdt_private.iTCO_version == 2) && (tmrval > 0x3ff)) ||
++	if (((iTCO_wdt_private.iTCO_version >= 2) && (tmrval > 0x3ff)) ||
+ 	    ((iTCO_wdt_private.iTCO_version == 1) && (tmrval > 0x03f)))
+ 		return -EINVAL;
+ 
+ 	iTCO_vendor_pre_set_heartbeat(tmrval);
+ 
+ 	/* Write new heartbeat to watchdog */
+-	if (iTCO_wdt_private.iTCO_version == 2) {
++	if (iTCO_wdt_private.iTCO_version >= 2) {
+ 		spin_lock(&iTCO_wdt_private.io_lock);
+ 		val16 = inw(TCOv2_TMR);
+ 		val16 &= 0xfc00;
+@@ -312,13 +335,13 @@ static unsigned int iTCO_wdt_get_timelef
+ 	unsigned int time_left = 0;
+ 
+ 	/* read the TCO Timer */
+-	if (iTCO_wdt_private.iTCO_version == 2) {
++	if (iTCO_wdt_private.iTCO_version >= 2) {
+ 		spin_lock(&iTCO_wdt_private.io_lock);
+ 		val16 = inw(TCO_RLD);
+ 		val16 &= 0x3ff;
+ 		spin_unlock(&iTCO_wdt_private.io_lock);
+ 
+-		time_left = (val16 * 6) / 10;
++		time_left = ticks_to_seconds(val16);
+ 	} else if (iTCO_wdt_private.iTCO_version == 1) {
+ 		spin_lock(&iTCO_wdt_private.io_lock);
+ 		val8 = inb(TCO_RLD);
+@@ -327,7 +350,7 @@ static unsigned int iTCO_wdt_get_timelef
+ 			val8 += (inb(TCOv1_TMR) & 0x3f);
+ 		spin_unlock(&iTCO_wdt_private.io_lock);
+ 
+-		time_left = (val8 * 6) / 10;
++		time_left = ticks_to_seconds(val8);
+ 	}
+ 	return time_left;
+ }
+@@ -376,16 +399,16 @@ static void iTCO_wdt_cleanup(void)
+ 			resource_size(iTCO_wdt_private.tco_res));
+ 	release_region(iTCO_wdt_private.smi_res->start,
+ 			resource_size(iTCO_wdt_private.smi_res));
+-	if (iTCO_wdt_private.iTCO_version == 2) {
+-		iounmap(iTCO_wdt_private.gcs);
+-		release_mem_region(iTCO_wdt_private.gcs_res->start,
+-				resource_size(iTCO_wdt_private.gcs_res));
++	if (iTCO_wdt_private.iTCO_version >= 2) {
++		iounmap(iTCO_wdt_private.gcs_pmc);
++		release_mem_region(iTCO_wdt_private.gcs_pmc_res->start,
++				resource_size(iTCO_wdt_private.gcs_pmc_res));
+ 	}
+ 
+ 	iTCO_wdt_private.tco_res = NULL;
+ 	iTCO_wdt_private.smi_res = NULL;
+-	iTCO_wdt_private.gcs_res = NULL;
+-	iTCO_wdt_private.gcs = NULL;
++	iTCO_wdt_private.gcs_pmc_res = NULL;
++	iTCO_wdt_private.gcs_pmc = NULL;
+ }
+ 
+ static int iTCO_wdt_probe(struct platform_device *dev)
+@@ -414,27 +437,27 @@ static int iTCO_wdt_probe(struct platfor
+ 	iTCO_wdt_private.pdev = to_pci_dev(dev->dev.parent);
+ 
+ 	/*
+-	 * Get the Memory-Mapped GCS register, we need it for the
+-	 * NO_REBOOT flag (TCO v2).
++	 * Get the Memory-Mapped GCS or PMC register, we need it for the
++	 * NO_REBOOT flag (TCO v2 and v3).
+ 	 */
+-	if (iTCO_wdt_private.iTCO_version == 2) {
+-		iTCO_wdt_private.gcs_res = platform_get_resource(dev,
++	if (iTCO_wdt_private.iTCO_version >= 2) {
++		iTCO_wdt_private.gcs_pmc_res = platform_get_resource(dev,
+ 							IORESOURCE_MEM,
+-							ICH_RES_MEM_GCS);
++							ICH_RES_MEM_GCS_PMC);
+ 
+-		if (!iTCO_wdt_private.gcs_res)
++		if (!iTCO_wdt_private.gcs_pmc_res)
+ 			goto out;
+ 
+-		if (!request_mem_region(iTCO_wdt_private.gcs_res->start,
+-			resource_size(iTCO_wdt_private.gcs_res), dev->name)) {
++		if (!request_mem_region(iTCO_wdt_private.gcs_pmc_res->start,
++			resource_size(iTCO_wdt_private.gcs_pmc_res), dev->name)) {
+ 			ret = -EBUSY;
+ 			goto out;
+ 		}
+-		iTCO_wdt_private.gcs = ioremap(iTCO_wdt_private.gcs_res->start,
+-			resource_size(iTCO_wdt_private.gcs_res));
+-		if (!iTCO_wdt_private.gcs) {
++		iTCO_wdt_private.gcs_pmc = ioremap(iTCO_wdt_private.gcs_pmc_res->start,
++			resource_size(iTCO_wdt_private.gcs_pmc_res));
++		if (!iTCO_wdt_private.gcs_pmc) {
+ 			ret = -EIO;
+-			goto unreg_gcs;
++			goto unreg_gcs_pmc;
+ 		}
+ 	}
+ 
+@@ -442,7 +465,7 @@ static int iTCO_wdt_probe(struct platfor
+ 	if (iTCO_wdt_unset_NO_REBOOT_bit() && iTCO_vendor_check_noreboot_on()) {
+ 		pr_info("unable to reset NO_REBOOT flag, device disabled by hardware/BIOS\n");
+ 		ret = -ENODEV;	/* Cannot reset NO_REBOOT bit */
+-		goto unmap_gcs;
++		goto unmap_gcs_pmc;
+ 	}
+ 
+ 	/* Set the NO_REBOOT bit to prevent later reboots, just for sure */
+@@ -454,7 +477,7 @@ static int iTCO_wdt_probe(struct platfor
+ 		pr_err("I/O address 0x%04llx already in use, device disabled\n",
+ 		       (u64)SMI_EN);
+ 		ret = -EBUSY;
+-		goto unmap_gcs;
++		goto unmap_gcs_pmc;
+ 	}
+ 	if (turn_SMI_watchdog_clear_off >= iTCO_wdt_private.iTCO_version) {
+ 		/*
+@@ -478,9 +501,13 @@ static int iTCO_wdt_probe(struct platfor
+ 		ich_info->name, ich_info->iTCO_version, (u64)TCOBASE);
+ 
+ 	/* Clear out the (probably old) status */
+-	outw(0x0008, TCO1_STS);	/* Clear the Time Out Status bit */
+-	outw(0x0002, TCO2_STS);	/* Clear SECOND_TO_STS bit */
+-	outw(0x0004, TCO2_STS);	/* Clear BOOT_STS bit */
++	if (iTCO_wdt_private.iTCO_version == 3) {
++		outl(0x20008, TCO1_STS);
++	} else {
++		outw(0x0008, TCO1_STS);	/* Clear the Time Out Status bit */
++		outw(0x0002, TCO2_STS);	/* Clear SECOND_TO_STS bit */
++		outw(0x0004, TCO2_STS);	/* Clear BOOT_STS bit */
++	}
+ 
+ 	iTCO_wdt_watchdog_dev.bootstatus = 0;
+ 	iTCO_wdt_watchdog_dev.timeout = WATCHDOG_TIMEOUT;
+@@ -515,18 +542,18 @@ unreg_tco:
+ unreg_smi:
+ 	release_region(iTCO_wdt_private.smi_res->start,
+ 			resource_size(iTCO_wdt_private.smi_res));
+-unmap_gcs:
+-	if (iTCO_wdt_private.iTCO_version == 2)
+-		iounmap(iTCO_wdt_private.gcs);
+-unreg_gcs:
+-	if (iTCO_wdt_private.iTCO_version == 2)
+-		release_mem_region(iTCO_wdt_private.gcs_res->start,
+-				resource_size(iTCO_wdt_private.gcs_res));
++unmap_gcs_pmc:
++	if (iTCO_wdt_private.iTCO_version >= 2)
++		iounmap(iTCO_wdt_private.gcs_pmc);
++unreg_gcs_pmc:
++	if (iTCO_wdt_private.iTCO_version >= 2)
++		release_mem_region(iTCO_wdt_private.gcs_pmc_res->start,
++				resource_size(iTCO_wdt_private.gcs_pmc_res));
+ out:
+ 	iTCO_wdt_private.tco_res = NULL;
+ 	iTCO_wdt_private.smi_res = NULL;
+-	iTCO_wdt_private.gcs_res = NULL;
+-	iTCO_wdt_private.gcs = NULL;
++	iTCO_wdt_private.gcs_pmc_res = NULL;
++	iTCO_wdt_private.gcs_pmc = NULL;
+ 
+ 	return ret;
+ }
diff --git a/patches.intel/watchdog-itco_wdt-fix-the-parent-device.patch b/patches.intel/watchdog-itco_wdt-fix-the-parent-device.patch
new file mode 100644
index 0000000..2e5a854
--- /dev/null
+++ b/patches.intel/watchdog-itco_wdt-fix-the-parent-device.patch
@@ -0,0 +1,37 @@
+From ltsi-dev-bounces@lists.linuxfoundation.org Wed Nov  5 10:40:29 2014
+From: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Date: Wed,  5 Nov 2014 09:39:21 +0800
+Subject: [LTSI-dev] [PATCH 16/16] watchdog: iTCO_wdt: Fix the parent device
+To: LTSI Mailing List <ltsi-dev@lists.linuxfoundation.org>
+Cc: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+Message-ID: <1415151561-16047-17-git-send-email-rebecca.swee.fun.chang@intel.com>
+
+
+From: Jean Delvare <jdelvare@suse.de>
+
+The watchdog's parent is iTCO_wdt (the platform device) not lpc_ich
+(the PCI device.) Setting the parent right makes it much easier for
+the user to figure out which driver/module is handling the watchdog
+device node.
+
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
+(cherry picked from commit c90789baa8cec363093c5ec292c989b6f22d8f32)
+
+Signed-off-by: Chang Rebecca Swee Fun <rebecca.swee.fun.chang@intel.com>
+---
+ drivers/watchdog/iTCO_wdt.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/watchdog/iTCO_wdt.c
++++ b/drivers/watchdog/iTCO_wdt.c
+@@ -512,7 +512,7 @@ static int iTCO_wdt_probe(struct platfor
+ 	iTCO_wdt_watchdog_dev.bootstatus = 0;
+ 	iTCO_wdt_watchdog_dev.timeout = WATCHDOG_TIMEOUT;
+ 	watchdog_set_nowayout(&iTCO_wdt_watchdog_dev, nowayout);
+-	iTCO_wdt_watchdog_dev.parent = dev->dev.parent;
++	iTCO_wdt_watchdog_dev.parent = &dev->dev;
+ 
+ 	/* Make sure the watchdog is not running */
+ 	iTCO_wdt_stop(&iTCO_wdt_watchdog_dev);
diff --git a/series b/series
index 49823bc..7a09d2e 100644
--- a/series
+++ b/series
@@ -1040,6 +1040,13 @@
 patches.intel/mfd-lpc_ich-add-support-for-itco-v3.patch
 patches.intel/mfd-lpc_ich-change-avoton-to-itco-v3.patch
 patches.intel/mfd-lpc_ich-add-support-for-nm10-gpio.patch
+patches.intel/mfd-lpc_ich-add-support-for-intel-bay-trail-soc.patch
+patches.intel/mfd-lpc_ich-enable-gpio-for-panther-point.patch
+patches.intel/mfd-lpc_ich-add-pci-id-for-intel-braswell.patch
+patches.intel/mfd-lpc_ich-add-device-ids-for-intel-9-series-pch.patch
+patches.intel/watchdog-itco_wdt-add-support-for-v3-silicon.patch
+patches.intel/watchdog-fix-checkpatch-warnings-and-error.patch
+patches.intel/watchdog-itco_wdt-fix-the-parent-device.patch
 
 
 #############################################################################