diff mbox series

[2/5,v2] watchdog: gemini/ftwdt010: rename driver and symbols

Message ID 20171016205427.4297-2-linus.walleij@linaro.org
State New
Headers show
Series [1/5,v2] watchdog: gemini/ftwdt010: rename DT bindings | expand

Commit Message

Linus Walleij Oct. 16, 2017, 8:54 p.m. UTC
This renames all the driver files and symbols for the Gemini
watchdog to FTWDT010 as it has been revealed that this IP block
is a generic watchdog timer from Faraday Technology used in
several SoC designs.

Select this driver by default for the Gemini, it is a sensible
driver to always have enabled.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
ChangeLog v1->v2:
- Fixed speling in commit message, rebased.
---
 drivers/watchdog/Kconfig                          |  14 +--
 drivers/watchdog/Makefile                         |   2 +-
 drivers/watchdog/{gemini_wdt.c => ftwdt010_wdt.c} | 117 +++++++++++-----------
 3 files changed, 68 insertions(+), 65 deletions(-)
 rename drivers/watchdog/{gemini_wdt.c => ftwdt010_wdt.c} (50%)

-- 
2.13.6

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Guenter Roeck Oct. 22, 2017, 5:18 p.m. UTC | #1
On Mon, Oct 16, 2017 at 10:54:24PM +0200, Linus Walleij wrote:
> This renames all the driver files and symbols for the Gemini

> watchdog to FTWDT010 as it has been revealed that this IP block

> is a generic watchdog timer from Faraday Technology used in

> several SoC designs.

> 

> Select this driver by default for the Gemini, it is a sensible

> driver to always have enabled.

> 

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>


Reviewed-by: Guenter Roeck <linux@roeck-us.net>


> ---

> ChangeLog v1->v2:

> - Fixed speling in commit message, rebased.

> ---

>  drivers/watchdog/Kconfig                          |  14 +--

>  drivers/watchdog/Makefile                         |   2 +-

>  drivers/watchdog/{gemini_wdt.c => ftwdt010_wdt.c} | 117 +++++++++++-----------

>  3 files changed, 68 insertions(+), 65 deletions(-)

>  rename drivers/watchdog/{gemini_wdt.c => ftwdt010_wdt.c} (50%)

> 

> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig

> index c722cbfdc7e6..fd44a542036a 100644

> --- a/drivers/watchdog/Kconfig

> +++ b/drivers/watchdog/Kconfig

> @@ -321,16 +321,18 @@ config 977_WATCHDOG

>  

>  	  Not sure? It's safe to say N.

>  

> -config GEMINI_WATCHDOG

> -	tristate "Gemini watchdog"

> -	depends on ARCH_GEMINI

> +config FTWDT010_WATCHDOG

> +	tristate "Faraday Technology FTWDT010 watchdog"

> +	depends on ARM || COMPILE_TEST

>  	select WATCHDOG_CORE

> +	default ARCH_GEMINI

>  	help

> -	  Say Y here if to include support for the watchdog timer

> -	  embedded in the Cortina Systems Gemini family of devices.

> +	  Say Y here if to include support for the Faraday Technology

> +	  FTWDT010 watchdog timer embedded in the Cortina Systems Gemini

> +	  family of devices.

>  

>  	  To compile this driver as a module, choose M here: the

> -	  module will be called gemini_wdt.

> +	  module will be called ftwdt010_wdt.

>  

>  config IXP4XX_WATCHDOG

>  	tristate "IXP4xx Watchdog"

> diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile

> index 56adf9fa67d0..df91d7db821c 100644

> --- a/drivers/watchdog/Makefile

> +++ b/drivers/watchdog/Makefile

> @@ -45,7 +45,7 @@ obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o

>  obj-$(CONFIG_TWL4030_WATCHDOG) += twl4030_wdt.o

>  obj-$(CONFIG_21285_WATCHDOG) += wdt285.o

>  obj-$(CONFIG_977_WATCHDOG) += wdt977.o

> -obj-$(CONFIG_GEMINI_WATCHDOG) += gemini_wdt.o

> +obj-$(CONFIG_FTWDT010_WATCHDOG) += ftwdt010_wdt.o

>  obj-$(CONFIG_IXP4XX_WATCHDOG) += ixp4xx_wdt.o

>  obj-$(CONFIG_KS8695_WATCHDOG) += ks8695_wdt.o

>  obj-$(CONFIG_S3C2410_WATCHDOG) += s3c2410_wdt.o

> diff --git a/drivers/watchdog/gemini_wdt.c b/drivers/watchdog/ftwdt010_wdt.c

> similarity index 50%

> rename from drivers/watchdog/gemini_wdt.c

> rename to drivers/watchdog/ftwdt010_wdt.c

> index 8155aa619e4c..637ffd812f0b 100644

> --- a/drivers/watchdog/gemini_wdt.c

> +++ b/drivers/watchdog/ftwdt010_wdt.c

> @@ -1,5 +1,5 @@

>  /*

> - * Watchdog driver for Cortina Systems Gemini SoC

> + * Watchdog driver for Faraday Technology FTWDT010

>   *

>   * Copyright (C) 2017 Linus Walleij <linus.walleij@linaro.org>

>   *

> @@ -22,10 +22,10 @@

>  #include <linux/slab.h>

>  #include <linux/watchdog.h>

>  

> -#define GEMINI_WDCOUNTER	0x0

> -#define GEMINI_WDLOAD		0x4

> -#define GEMINI_WDRESTART	0x8

> -#define GEMINI_WDCR		0xC

> +#define FTWDT010_WDCOUNTER	0x0

> +#define FTWDT010_WDLOAD		0x4

> +#define FTWDT010_WDRESTART	0x8

> +#define FTWDT010_WDCR		0xC

>  

>  #define WDRESTART_MAGIC		0x5AB9

>  

> @@ -35,79 +35,79 @@

>  

>  #define WDT_CLOCK		5000000		/* 5 MHz */

>  

> -struct gemini_wdt {

> +struct ftwdt010_wdt {

>  	struct watchdog_device	wdd;

>  	struct device		*dev;

>  	void __iomem		*base;

>  };

>  

>  static inline

> -struct gemini_wdt *to_gemini_wdt(struct watchdog_device *wdd)

> +struct ftwdt010_wdt *to_ftwdt010_wdt(struct watchdog_device *wdd)

>  {

> -	return container_of(wdd, struct gemini_wdt, wdd);

> +	return container_of(wdd, struct ftwdt010_wdt, wdd);

>  }

>  

> -static int gemini_wdt_start(struct watchdog_device *wdd)

> +static int ftwdt010_wdt_start(struct watchdog_device *wdd)

>  {

> -	struct gemini_wdt *gwdt = to_gemini_wdt(wdd);

> +	struct ftwdt010_wdt *gwdt = to_ftwdt010_wdt(wdd);

>  

> -	writel(wdd->timeout * WDT_CLOCK, gwdt->base + GEMINI_WDLOAD);

> -	writel(WDRESTART_MAGIC, gwdt->base + GEMINI_WDRESTART);

> +	writel(wdd->timeout * WDT_CLOCK, gwdt->base + FTWDT010_WDLOAD);

> +	writel(WDRESTART_MAGIC, gwdt->base + FTWDT010_WDRESTART);

>  	/* set clock before enabling */

>  	writel(WDCR_CLOCK_5MHZ | WDCR_SYS_RST,

> -			gwdt->base + GEMINI_WDCR);

> +			gwdt->base + FTWDT010_WDCR);

>  	writel(WDCR_CLOCK_5MHZ | WDCR_SYS_RST | WDCR_ENABLE,

> -			gwdt->base + GEMINI_WDCR);

> +			gwdt->base + FTWDT010_WDCR);

>  

>  	return 0;

>  }

>  

> -static int gemini_wdt_stop(struct watchdog_device *wdd)

> +static int ftwdt010_wdt_stop(struct watchdog_device *wdd)

>  {

> -	struct gemini_wdt *gwdt = to_gemini_wdt(wdd);

> +	struct ftwdt010_wdt *gwdt = to_ftwdt010_wdt(wdd);

>  

> -	writel(0, gwdt->base + GEMINI_WDCR);

> +	writel(0, gwdt->base + FTWDT010_WDCR);

>  

>  	return 0;

>  }

>  

> -static int gemini_wdt_ping(struct watchdog_device *wdd)

> +static int ftwdt010_wdt_ping(struct watchdog_device *wdd)

>  {

> -	struct gemini_wdt *gwdt = to_gemini_wdt(wdd);

> +	struct ftwdt010_wdt *gwdt = to_ftwdt010_wdt(wdd);

>  

> -	writel(WDRESTART_MAGIC, gwdt->base + GEMINI_WDRESTART);

> +	writel(WDRESTART_MAGIC, gwdt->base + FTWDT010_WDRESTART);

>  

>  	return 0;

>  }

>  

> -static int gemini_wdt_set_timeout(struct watchdog_device *wdd,

> +static int ftwdt010_wdt_set_timeout(struct watchdog_device *wdd,

>  				  unsigned int timeout)

>  {

>  	wdd->timeout = timeout;

>  	if (watchdog_active(wdd))

> -		gemini_wdt_start(wdd);

> +		ftwdt010_wdt_start(wdd);

>  

>  	return 0;

>  }

>  

> -static irqreturn_t gemini_wdt_interrupt(int irq, void *data)

> +static irqreturn_t ftwdt010_wdt_interrupt(int irq, void *data)

>  {

> -	struct gemini_wdt *gwdt = data;

> +	struct ftwdt010_wdt *gwdt = data;

>  

>  	watchdog_notify_pretimeout(&gwdt->wdd);

>  

>  	return IRQ_HANDLED;

>  }

>  

> -static const struct watchdog_ops gemini_wdt_ops = {

> -	.start		= gemini_wdt_start,

> -	.stop		= gemini_wdt_stop,

> -	.ping		= gemini_wdt_ping,

> -	.set_timeout	= gemini_wdt_set_timeout,

> +static const struct watchdog_ops ftwdt010_wdt_ops = {

> +	.start		= ftwdt010_wdt_start,

> +	.stop		= ftwdt010_wdt_stop,

> +	.ping		= ftwdt010_wdt_ping,

> +	.set_timeout	= ftwdt010_wdt_set_timeout,

>  	.owner		= THIS_MODULE,

>  };

>  

> -static const struct watchdog_info gemini_wdt_info = {

> +static const struct watchdog_info ftwdt010_wdt_info = {

>  	.options	= WDIOF_KEEPALIVEPING

>  			| WDIOF_MAGICCLOSE

>  			| WDIOF_SETTIMEOUT,

> @@ -115,11 +115,11 @@ static const struct watchdog_info gemini_wdt_info = {

>  };

>  

>  

> -static int gemini_wdt_probe(struct platform_device *pdev)

> +static int ftwdt010_wdt_probe(struct platform_device *pdev)

>  {

>  	struct device *dev = &pdev->dev;

>  	struct resource *res;

> -	struct gemini_wdt *gwdt;

> +	struct ftwdt010_wdt *gwdt;

>  	unsigned int reg;

>  	int irq;

>  	int ret;

> @@ -138,8 +138,8 @@ static int gemini_wdt_probe(struct platform_device *pdev)

>  		return -EINVAL;

>  

>  	gwdt->dev = dev;

> -	gwdt->wdd.info = &gemini_wdt_info;

> -	gwdt->wdd.ops = &gemini_wdt_ops;

> +	gwdt->wdd.info = &ftwdt010_wdt_info;

> +	gwdt->wdd.ops = &ftwdt010_wdt_ops;

>  	gwdt->wdd.min_timeout = 1;

>  	gwdt->wdd.max_timeout = 0xFFFFFFFF / WDT_CLOCK;

>  	gwdt->wdd.parent = dev;

> @@ -151,14 +151,14 @@ static int gemini_wdt_probe(struct platform_device *pdev)

>  	gwdt->wdd.timeout = 13U;

>  	watchdog_init_timeout(&gwdt->wdd, 0, dev);

>  

> -	reg = readw(gwdt->base + GEMINI_WDCR);

> +	reg = readw(gwdt->base + FTWDT010_WDCR);

>  	if (reg & WDCR_ENABLE) {

>  		/* Watchdog was enabled by the bootloader, disable it. */

>  		reg &= ~WDCR_ENABLE;

> -		writel(reg, gwdt->base + GEMINI_WDCR);

> +		writel(reg, gwdt->base + FTWDT010_WDCR);

>  	}

>  

> -	ret = devm_request_irq(dev, irq, gemini_wdt_interrupt, 0,

> +	ret = devm_request_irq(dev, irq, ftwdt010_wdt_interrupt, 0,

>  			       "watchdog bark", gwdt);

>  	if (ret)

>  		return ret;

> @@ -171,59 +171,60 @@ static int gemini_wdt_probe(struct platform_device *pdev)

>  

>  	/* Set up platform driver data */

>  	platform_set_drvdata(pdev, gwdt);

> -	dev_info(dev, "Gemini watchdog driver enabled\n");

> +	dev_info(dev, "FTWDT010 watchdog driver enabled\n");

>  

>  	return 0;

>  }

>  

> -static int __maybe_unused gemini_wdt_suspend(struct device *dev)

> +static int __maybe_unused ftwdt010_wdt_suspend(struct device *dev)

>  {

> -	struct gemini_wdt *gwdt = dev_get_drvdata(dev);

> +	struct ftwdt010_wdt *gwdt = dev_get_drvdata(dev);

>  	unsigned int reg;

>  

> -	reg = readw(gwdt->base + GEMINI_WDCR);

> +	reg = readw(gwdt->base + FTWDT010_WDCR);

>  	reg &= ~WDCR_ENABLE;

> -	writel(reg, gwdt->base + GEMINI_WDCR);

> +	writel(reg, gwdt->base + FTWDT010_WDCR);

>  

>  	return 0;

>  }

>  

> -static int __maybe_unused gemini_wdt_resume(struct device *dev)

> +static int __maybe_unused ftwdt010_wdt_resume(struct device *dev)

>  {

> -	struct gemini_wdt *gwdt = dev_get_drvdata(dev);

> +	struct ftwdt010_wdt *gwdt = dev_get_drvdata(dev);

>  	unsigned int reg;

>  

>  	if (watchdog_active(&gwdt->wdd)) {

> -		reg = readw(gwdt->base + GEMINI_WDCR);

> +		reg = readw(gwdt->base + FTWDT010_WDCR);

>  		reg |= WDCR_ENABLE;

> -		writel(reg, gwdt->base + GEMINI_WDCR);

> +		writel(reg, gwdt->base + FTWDT010_WDCR);

>  	}

>  

>  	return 0;

>  }

>  

> -static const struct dev_pm_ops gemini_wdt_dev_pm_ops = {

> -	SET_SYSTEM_SLEEP_PM_OPS(gemini_wdt_suspend,

> -				gemini_wdt_resume)

> +static const struct dev_pm_ops ftwdt010_wdt_dev_pm_ops = {

> +	SET_SYSTEM_SLEEP_PM_OPS(ftwdt010_wdt_suspend,

> +				ftwdt010_wdt_resume)

>  };

>  

>  #ifdef CONFIG_OF

> -static const struct of_device_id gemini_wdt_match[] = {

> +static const struct of_device_id ftwdt010_wdt_match[] = {

> +	{ .compatible = "faraday,ftwdt010" },

>  	{ .compatible = "cortina,gemini-watchdog" },

>  	{},

>  };

> -MODULE_DEVICE_TABLE(of, gemini_wdt_match);

> +MODULE_DEVICE_TABLE(of, ftwdt010_wdt_match);

>  #endif

>  

> -static struct platform_driver gemini_wdt_driver = {

> -	.probe		= gemini_wdt_probe,

> +static struct platform_driver ftwdt010_wdt_driver = {

> +	.probe		= ftwdt010_wdt_probe,

>  	.driver		= {

> -		.name	= "gemini-wdt",

> -		.of_match_table = of_match_ptr(gemini_wdt_match),

> -		.pm = &gemini_wdt_dev_pm_ops,

> +		.name	= "ftwdt010-wdt",

> +		.of_match_table = of_match_ptr(ftwdt010_wdt_match),

> +		.pm = &ftwdt010_wdt_dev_pm_ops,

>  	},

>  };

> -module_platform_driver(gemini_wdt_driver);

> +module_platform_driver(ftwdt010_wdt_driver);

>  MODULE_AUTHOR("Linus Walleij");

> -MODULE_DESCRIPTION("Watchdog driver for Gemini");

> +MODULE_DESCRIPTION("Watchdog driver for Faraday Technology FTWDT010");

>  MODULE_LICENSE("GPL");

--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox series

Patch

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index c722cbfdc7e6..fd44a542036a 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -321,16 +321,18 @@  config 977_WATCHDOG
 
 	  Not sure? It's safe to say N.
 
-config GEMINI_WATCHDOG
-	tristate "Gemini watchdog"
-	depends on ARCH_GEMINI
+config FTWDT010_WATCHDOG
+	tristate "Faraday Technology FTWDT010 watchdog"
+	depends on ARM || COMPILE_TEST
 	select WATCHDOG_CORE
+	default ARCH_GEMINI
 	help
-	  Say Y here if to include support for the watchdog timer
-	  embedded in the Cortina Systems Gemini family of devices.
+	  Say Y here if to include support for the Faraday Technology
+	  FTWDT010 watchdog timer embedded in the Cortina Systems Gemini
+	  family of devices.
 
 	  To compile this driver as a module, choose M here: the
-	  module will be called gemini_wdt.
+	  module will be called ftwdt010_wdt.
 
 config IXP4XX_WATCHDOG
 	tristate "IXP4xx Watchdog"
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 56adf9fa67d0..df91d7db821c 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -45,7 +45,7 @@  obj-$(CONFIG_OMAP_WATCHDOG) += omap_wdt.o
 obj-$(CONFIG_TWL4030_WATCHDOG) += twl4030_wdt.o
 obj-$(CONFIG_21285_WATCHDOG) += wdt285.o
 obj-$(CONFIG_977_WATCHDOG) += wdt977.o
-obj-$(CONFIG_GEMINI_WATCHDOG) += gemini_wdt.o
+obj-$(CONFIG_FTWDT010_WATCHDOG) += ftwdt010_wdt.o
 obj-$(CONFIG_IXP4XX_WATCHDOG) += ixp4xx_wdt.o
 obj-$(CONFIG_KS8695_WATCHDOG) += ks8695_wdt.o
 obj-$(CONFIG_S3C2410_WATCHDOG) += s3c2410_wdt.o
diff --git a/drivers/watchdog/gemini_wdt.c b/drivers/watchdog/ftwdt010_wdt.c
similarity index 50%
rename from drivers/watchdog/gemini_wdt.c
rename to drivers/watchdog/ftwdt010_wdt.c
index 8155aa619e4c..637ffd812f0b 100644
--- a/drivers/watchdog/gemini_wdt.c
+++ b/drivers/watchdog/ftwdt010_wdt.c
@@ -1,5 +1,5 @@ 
 /*
- * Watchdog driver for Cortina Systems Gemini SoC
+ * Watchdog driver for Faraday Technology FTWDT010
  *
  * Copyright (C) 2017 Linus Walleij <linus.walleij@linaro.org>
  *
@@ -22,10 +22,10 @@ 
 #include <linux/slab.h>
 #include <linux/watchdog.h>
 
-#define GEMINI_WDCOUNTER	0x0
-#define GEMINI_WDLOAD		0x4
-#define GEMINI_WDRESTART	0x8
-#define GEMINI_WDCR		0xC
+#define FTWDT010_WDCOUNTER	0x0
+#define FTWDT010_WDLOAD		0x4
+#define FTWDT010_WDRESTART	0x8
+#define FTWDT010_WDCR		0xC
 
 #define WDRESTART_MAGIC		0x5AB9
 
@@ -35,79 +35,79 @@ 
 
 #define WDT_CLOCK		5000000		/* 5 MHz */
 
-struct gemini_wdt {
+struct ftwdt010_wdt {
 	struct watchdog_device	wdd;
 	struct device		*dev;
 	void __iomem		*base;
 };
 
 static inline
-struct gemini_wdt *to_gemini_wdt(struct watchdog_device *wdd)
+struct ftwdt010_wdt *to_ftwdt010_wdt(struct watchdog_device *wdd)
 {
-	return container_of(wdd, struct gemini_wdt, wdd);
+	return container_of(wdd, struct ftwdt010_wdt, wdd);
 }
 
-static int gemini_wdt_start(struct watchdog_device *wdd)
+static int ftwdt010_wdt_start(struct watchdog_device *wdd)
 {
-	struct gemini_wdt *gwdt = to_gemini_wdt(wdd);
+	struct ftwdt010_wdt *gwdt = to_ftwdt010_wdt(wdd);
 
-	writel(wdd->timeout * WDT_CLOCK, gwdt->base + GEMINI_WDLOAD);
-	writel(WDRESTART_MAGIC, gwdt->base + GEMINI_WDRESTART);
+	writel(wdd->timeout * WDT_CLOCK, gwdt->base + FTWDT010_WDLOAD);
+	writel(WDRESTART_MAGIC, gwdt->base + FTWDT010_WDRESTART);
 	/* set clock before enabling */
 	writel(WDCR_CLOCK_5MHZ | WDCR_SYS_RST,
-			gwdt->base + GEMINI_WDCR);
+			gwdt->base + FTWDT010_WDCR);
 	writel(WDCR_CLOCK_5MHZ | WDCR_SYS_RST | WDCR_ENABLE,
-			gwdt->base + GEMINI_WDCR);
+			gwdt->base + FTWDT010_WDCR);
 
 	return 0;
 }
 
-static int gemini_wdt_stop(struct watchdog_device *wdd)
+static int ftwdt010_wdt_stop(struct watchdog_device *wdd)
 {
-	struct gemini_wdt *gwdt = to_gemini_wdt(wdd);
+	struct ftwdt010_wdt *gwdt = to_ftwdt010_wdt(wdd);
 
-	writel(0, gwdt->base + GEMINI_WDCR);
+	writel(0, gwdt->base + FTWDT010_WDCR);
 
 	return 0;
 }
 
-static int gemini_wdt_ping(struct watchdog_device *wdd)
+static int ftwdt010_wdt_ping(struct watchdog_device *wdd)
 {
-	struct gemini_wdt *gwdt = to_gemini_wdt(wdd);
+	struct ftwdt010_wdt *gwdt = to_ftwdt010_wdt(wdd);
 
-	writel(WDRESTART_MAGIC, gwdt->base + GEMINI_WDRESTART);
+	writel(WDRESTART_MAGIC, gwdt->base + FTWDT010_WDRESTART);
 
 	return 0;
 }
 
-static int gemini_wdt_set_timeout(struct watchdog_device *wdd,
+static int ftwdt010_wdt_set_timeout(struct watchdog_device *wdd,
 				  unsigned int timeout)
 {
 	wdd->timeout = timeout;
 	if (watchdog_active(wdd))
-		gemini_wdt_start(wdd);
+		ftwdt010_wdt_start(wdd);
 
 	return 0;
 }
 
-static irqreturn_t gemini_wdt_interrupt(int irq, void *data)
+static irqreturn_t ftwdt010_wdt_interrupt(int irq, void *data)
 {
-	struct gemini_wdt *gwdt = data;
+	struct ftwdt010_wdt *gwdt = data;
 
 	watchdog_notify_pretimeout(&gwdt->wdd);
 
 	return IRQ_HANDLED;
 }
 
-static const struct watchdog_ops gemini_wdt_ops = {
-	.start		= gemini_wdt_start,
-	.stop		= gemini_wdt_stop,
-	.ping		= gemini_wdt_ping,
-	.set_timeout	= gemini_wdt_set_timeout,
+static const struct watchdog_ops ftwdt010_wdt_ops = {
+	.start		= ftwdt010_wdt_start,
+	.stop		= ftwdt010_wdt_stop,
+	.ping		= ftwdt010_wdt_ping,
+	.set_timeout	= ftwdt010_wdt_set_timeout,
 	.owner		= THIS_MODULE,
 };
 
-static const struct watchdog_info gemini_wdt_info = {
+static const struct watchdog_info ftwdt010_wdt_info = {
 	.options	= WDIOF_KEEPALIVEPING
 			| WDIOF_MAGICCLOSE
 			| WDIOF_SETTIMEOUT,
@@ -115,11 +115,11 @@  static const struct watchdog_info gemini_wdt_info = {
 };
 
 
-static int gemini_wdt_probe(struct platform_device *pdev)
+static int ftwdt010_wdt_probe(struct platform_device *pdev)
 {
 	struct device *dev = &pdev->dev;
 	struct resource *res;
-	struct gemini_wdt *gwdt;
+	struct ftwdt010_wdt *gwdt;
 	unsigned int reg;
 	int irq;
 	int ret;
@@ -138,8 +138,8 @@  static int gemini_wdt_probe(struct platform_device *pdev)
 		return -EINVAL;
 
 	gwdt->dev = dev;
-	gwdt->wdd.info = &gemini_wdt_info;
-	gwdt->wdd.ops = &gemini_wdt_ops;
+	gwdt->wdd.info = &ftwdt010_wdt_info;
+	gwdt->wdd.ops = &ftwdt010_wdt_ops;
 	gwdt->wdd.min_timeout = 1;
 	gwdt->wdd.max_timeout = 0xFFFFFFFF / WDT_CLOCK;
 	gwdt->wdd.parent = dev;
@@ -151,14 +151,14 @@  static int gemini_wdt_probe(struct platform_device *pdev)
 	gwdt->wdd.timeout = 13U;
 	watchdog_init_timeout(&gwdt->wdd, 0, dev);
 
-	reg = readw(gwdt->base + GEMINI_WDCR);
+	reg = readw(gwdt->base + FTWDT010_WDCR);
 	if (reg & WDCR_ENABLE) {
 		/* Watchdog was enabled by the bootloader, disable it. */
 		reg &= ~WDCR_ENABLE;
-		writel(reg, gwdt->base + GEMINI_WDCR);
+		writel(reg, gwdt->base + FTWDT010_WDCR);
 	}
 
-	ret = devm_request_irq(dev, irq, gemini_wdt_interrupt, 0,
+	ret = devm_request_irq(dev, irq, ftwdt010_wdt_interrupt, 0,
 			       "watchdog bark", gwdt);
 	if (ret)
 		return ret;
@@ -171,59 +171,60 @@  static int gemini_wdt_probe(struct platform_device *pdev)
 
 	/* Set up platform driver data */
 	platform_set_drvdata(pdev, gwdt);
-	dev_info(dev, "Gemini watchdog driver enabled\n");
+	dev_info(dev, "FTWDT010 watchdog driver enabled\n");
 
 	return 0;
 }
 
-static int __maybe_unused gemini_wdt_suspend(struct device *dev)
+static int __maybe_unused ftwdt010_wdt_suspend(struct device *dev)
 {
-	struct gemini_wdt *gwdt = dev_get_drvdata(dev);
+	struct ftwdt010_wdt *gwdt = dev_get_drvdata(dev);
 	unsigned int reg;
 
-	reg = readw(gwdt->base + GEMINI_WDCR);
+	reg = readw(gwdt->base + FTWDT010_WDCR);
 	reg &= ~WDCR_ENABLE;
-	writel(reg, gwdt->base + GEMINI_WDCR);
+	writel(reg, gwdt->base + FTWDT010_WDCR);
 
 	return 0;
 }
 
-static int __maybe_unused gemini_wdt_resume(struct device *dev)
+static int __maybe_unused ftwdt010_wdt_resume(struct device *dev)
 {
-	struct gemini_wdt *gwdt = dev_get_drvdata(dev);
+	struct ftwdt010_wdt *gwdt = dev_get_drvdata(dev);
 	unsigned int reg;
 
 	if (watchdog_active(&gwdt->wdd)) {
-		reg = readw(gwdt->base + GEMINI_WDCR);
+		reg = readw(gwdt->base + FTWDT010_WDCR);
 		reg |= WDCR_ENABLE;
-		writel(reg, gwdt->base + GEMINI_WDCR);
+		writel(reg, gwdt->base + FTWDT010_WDCR);
 	}
 
 	return 0;
 }
 
-static const struct dev_pm_ops gemini_wdt_dev_pm_ops = {
-	SET_SYSTEM_SLEEP_PM_OPS(gemini_wdt_suspend,
-				gemini_wdt_resume)
+static const struct dev_pm_ops ftwdt010_wdt_dev_pm_ops = {
+	SET_SYSTEM_SLEEP_PM_OPS(ftwdt010_wdt_suspend,
+				ftwdt010_wdt_resume)
 };
 
 #ifdef CONFIG_OF
-static const struct of_device_id gemini_wdt_match[] = {
+static const struct of_device_id ftwdt010_wdt_match[] = {
+	{ .compatible = "faraday,ftwdt010" },
 	{ .compatible = "cortina,gemini-watchdog" },
 	{},
 };
-MODULE_DEVICE_TABLE(of, gemini_wdt_match);
+MODULE_DEVICE_TABLE(of, ftwdt010_wdt_match);
 #endif
 
-static struct platform_driver gemini_wdt_driver = {
-	.probe		= gemini_wdt_probe,
+static struct platform_driver ftwdt010_wdt_driver = {
+	.probe		= ftwdt010_wdt_probe,
 	.driver		= {
-		.name	= "gemini-wdt",
-		.of_match_table = of_match_ptr(gemini_wdt_match),
-		.pm = &gemini_wdt_dev_pm_ops,
+		.name	= "ftwdt010-wdt",
+		.of_match_table = of_match_ptr(ftwdt010_wdt_match),
+		.pm = &ftwdt010_wdt_dev_pm_ops,
 	},
 };
-module_platform_driver(gemini_wdt_driver);
+module_platform_driver(ftwdt010_wdt_driver);
 MODULE_AUTHOR("Linus Walleij");
-MODULE_DESCRIPTION("Watchdog driver for Gemini");
+MODULE_DESCRIPTION("Watchdog driver for Faraday Technology FTWDT010");
 MODULE_LICENSE("GPL");