summaryrefslogtreecommitdiffstats
path: root/target/linux/ifxmips/files/drivers/char/watchdog
diff options
context:
space:
mode:
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-12-26 17:20:31 +0000
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>2007-12-26 17:20:31 +0000
commitf6697c727cd53d1d86883622a4bd6cd836164ac8 (patch)
tree60349d786e4d9a382cae8ba67322f994d2c6746c /target/linux/ifxmips/files/drivers/char/watchdog
parenteac54909415f8a3bf2e5fecd8b80803ef80f8b4a (diff)
remove functions that was moved to board.c
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9929 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ifxmips/files/drivers/char/watchdog')
-rw-r--r--target/linux/ifxmips/files/drivers/char/watchdog/ifxmips_wdt.c45
1 files changed, 36 insertions, 9 deletions
diff --git a/target/linux/ifxmips/files/drivers/char/watchdog/ifxmips_wdt.c b/target/linux/ifxmips/files/drivers/char/watchdog/ifxmips_wdt.c
index 8fcbc8803..21f55150e 100644
--- a/target/linux/ifxmips/files/drivers/char/watchdog/ifxmips_wdt.c
+++ b/target/linux/ifxmips/files/drivers/char/watchdog/ifxmips_wdt.c
@@ -25,10 +25,11 @@
#include <linux/module.h>
#include <asm-mips/ifxmips/ifxmips_wdt.h>
#include <asm-mips/ifxmips/ifxmips.h>
+#include <linux/platform_device.h>
+#define DRVNAME "ifxmips_wdt"
// TODO remove magic numbers and weirdo macros
-
extern unsigned int ifxmips_get_fpi_hz (void);
static int ifxmips_wdt_inuse = 0;
@@ -54,12 +55,12 @@ ifxmips_wdt_enable (unsigned int timeout)
/* caculate reload value */
wdt_reload = (timeout * (ffpi / wdt_clkdiv)) + wdt_pwl;
- printk("wdt_pwl=0x%x, wdt_clkdiv=%d, ffpi=%d, wdt_reload = 0x%x\n",
+ printk(KERN_WARNING DRVNAME ": wdt_pwl=0x%x, wdt_clkdiv=%d, ffpi=%d, wdt_reload = 0x%x\n",
wdt_pwl, wdt_clkdiv, ffpi, wdt_reload);
if (wdt_reload > 0xFFFF)
{
- printk ("timeout too large %d\n", timeout);
+ printk(KERN_WARNING DRVNAME ": timeout too large %d\n", timeout);
retval = -EINVAL;
goto out;
}
@@ -174,7 +175,7 @@ ifxmips_wdt_ioctl (struct inode *inode, struct file *file, unsigned int cmd,
break;
case IFXMIPS_WDT_IOC_STOP:
- printk("disable watch dog timer\n");
+ printk(KERN_INFO DRVNAME ": disable watch dog timer\n");
ifxmips_wdt_disable();
break;
@@ -207,7 +208,7 @@ ifxmips_wdt_ioctl (struct inode *inode, struct file *file, unsigned int cmd,
break;
default:
- printk("unknown watchdog iotcl\n");
+ printk(KERN_WARNING DRVNAME ": unknown watchdog iotcl\n");
}
out:
@@ -257,8 +258,8 @@ static struct file_operations wdt_fops = {
.release = ifxmips_wdt_release,
};
-int __init
-ifxmips_wdt_init_module (void)
+static int
+ifxmips_wdt_probe (struct platform_device *pdev)
{
ifxmips_wdt_major = register_chrdev(0, "wdt", &wdt_fops);
@@ -276,11 +277,37 @@ ifxmips_wdt_init_module (void)
return 0;
}
+static int
+ifxmips_wdt_remove (struct platform_device *pdev)
+{
+ unregister_chrdev(ifxmips_wdt_major, "wdt");
+ remove_proc_entry(DRVNAME, NULL);
+ return 0;
+}
+
+static struct
+platform_driver ifxmips_wdt_driver = {
+ .probe = ifxmips_wdt_probe,
+ .remove = ifxmips_wdt_remove,
+ .driver = {
+ .name = DRVNAME,
+ .owner = THIS_MODULE,
+ },
+};
+
+int __init
+ifxmips_wdt_init_module (void)
+{
+ int ret = platform_driver_register(&ifxmips_wdt_driver);
+ if (ret)
+ printk(KERN_INFO DRVNAME ": Error registering platfom driver!");
+ return ret;
+}
+
void
ifxmips_wdt_cleanup_module (void)
{
- unregister_chrdev(ifxmips_wdt_major, "wdt");
- remove_proc_entry("ifxmips_wdt", NULL);
+ platform_driver_unregister(&ifxmips_wdt_driver);
}
module_init(ifxmips_wdt_init_module);