danube to ifxmips transition
[openwrt/svn-archive/archive.git] / target / linux / ifxmips / files / drivers / char / danube_gpio.c
index 2a426658689b50cbc740f02040675d8544bfaa61..6ac9ec6b1792e3e465115d5fcf8def28780ba470 100644 (file)
 #include <linux/ioctl.h>
 #include <asm/semaphore.h>
 #include <asm/uaccess.h>
-#include <asm/danube/danube.h>
-#include <asm/danube/danube_ioctl.h>
+#include <asm/ifxmips/ifxmips.h>
+#include <asm/ifxmips/ifxmips_ioctl.h>
 
 #define MAX_PORTS                      2
 #define PINS_PER_PORT          16
 
-static unsigned int danube_gpio_major = 0;
+static unsigned int ifxmips_gpio_major = 0;
 
 /* TODO do we need this ? */
 static struct semaphore port_sem;
@@ -41,147 +41,147 @@ static struct semaphore port_sem;
 #define IFXMIPS_GPIO_SANITY            {if (port > MAX_PORTS || pin > PINS_PER_PORT) return -EINVAL; }
 
 int
-danube_port_reserve_pin (unsigned int port, unsigned int pin)
+ifxmips_port_reserve_pin (unsigned int port, unsigned int pin)
 {
        IFXMIPS_GPIO_SANITY;
        printk("%s : call to obseleted function\n", __func__);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_reserve_pin);
+EXPORT_SYMBOL(ifxmips_port_reserve_pin);
 
 int
-danube_port_free_pin (unsigned int port, unsigned int pin)
+ifxmips_port_free_pin (unsigned int port, unsigned int pin)
 {
        IFXMIPS_GPIO_SANITY;
        printk("%s : call to obseleted function\n", __func__);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_free_pin);
+EXPORT_SYMBOL(ifxmips_port_free_pin);
 
 int
-danube_port_set_open_drain (unsigned int port, unsigned int pin)
+ifxmips_port_set_open_drain (unsigned int port, unsigned int pin)
 {
        IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_OD + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_OD);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_open_drain);
+EXPORT_SYMBOL(ifxmips_port_set_open_drain);
 
 int
-danube_port_clear_open_drain (unsigned int port, unsigned int pin)
+ifxmips_port_clear_open_drain (unsigned int port, unsigned int pin)
 {
        IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_OD + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_OD);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_clear_open_drain);
+EXPORT_SYMBOL(ifxmips_port_clear_open_drain);
 
 int
-danube_port_set_pudsel (unsigned int port, unsigned int pin)
+ifxmips_port_set_pudsel (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_PUDSEL + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_PUDSEL);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_pudsel);
+EXPORT_SYMBOL(ifxmips_port_set_pudsel);
 
 int
-danube_port_clear_pudsel (unsigned int port, unsigned int pin)
+ifxmips_port_clear_pudsel (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_PUDSEL + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_PUDSEL);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_clear_pudsel);
+EXPORT_SYMBOL(ifxmips_port_clear_pudsel);
 
 int
-danube_port_set_puden (unsigned int port, unsigned int pin)
+ifxmips_port_set_puden (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_PUDEN + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_PUDEN);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_puden);
+EXPORT_SYMBOL(ifxmips_port_set_puden);
 
 int
-danube_port_clear_puden (unsigned int port, unsigned int pin)
+ifxmips_port_clear_puden (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_PUDEN + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_PUDEN);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_clear_puden);
+EXPORT_SYMBOL(ifxmips_port_clear_puden);
 
 int
-danube_port_set_stoff (unsigned int port, unsigned int pin)
+ifxmips_port_set_stoff (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_STOFF + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_STOFF);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_stoff);
+EXPORT_SYMBOL(ifxmips_port_set_stoff);
 
 int
-danube_port_clear_stoff (unsigned int port, unsigned int pin)
+ifxmips_port_clear_stoff (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_STOFF + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_STOFF);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_clear_stoff);
+EXPORT_SYMBOL(ifxmips_port_clear_stoff);
 
 int
-danube_port_set_dir_out (unsigned int port, unsigned int pin)
+ifxmips_port_set_dir_out (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_DIR + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_DIR);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_dir_out);
+EXPORT_SYMBOL(ifxmips_port_set_dir_out);
 
 int
-danube_port_set_dir_in (unsigned int port, unsigned int pin)
+ifxmips_port_set_dir_in (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_DIR + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_DIR);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_dir_in);
+EXPORT_SYMBOL(ifxmips_port_set_dir_in);
 
 int
-danube_port_set_output (unsigned int port, unsigned int pin)
+ifxmips_port_set_output (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_OUT + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_OUT);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_output);
+EXPORT_SYMBOL(ifxmips_port_set_output);
 
 int
-danube_port_clear_output (unsigned int port, unsigned int pin)
+ifxmips_port_clear_output (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_OUT + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_OUT);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_clear_output);
+EXPORT_SYMBOL(ifxmips_port_clear_output);
 
 int
-danube_port_get_input (unsigned int port, unsigned int pin)
+ifxmips_port_get_input (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
 
@@ -190,49 +190,49 @@ danube_port_get_input (unsigned int port, unsigned int pin)
        else
                return 1;
 }
-EXPORT_SYMBOL(danube_port_get_input);
+EXPORT_SYMBOL(ifxmips_port_get_input);
 
 int
-danube_port_set_altsel0 (unsigned int port, unsigned int pin)
+ifxmips_port_set_altsel0 (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_ALTSEL0 + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_ALTSEL0);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_altsel0);
+EXPORT_SYMBOL(ifxmips_port_set_altsel0);
 
 int
-danube_port_clear_altsel0 (unsigned int port, unsigned int pin)
+ifxmips_port_clear_altsel0 (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_ALTSEL0 + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_ALTSEL0);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_clear_altsel0);
+EXPORT_SYMBOL(ifxmips_port_clear_altsel0);
 
 int
-danube_port_set_altsel1 (unsigned int port, unsigned int pin)
+ifxmips_port_set_altsel1 (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_ALTSEL1 + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_ALTSEL1);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_set_altsel1);
+EXPORT_SYMBOL(ifxmips_port_set_altsel1);
 
 int
-danube_port_clear_altsel1 (unsigned int port, unsigned int pin)
+ifxmips_port_clear_altsel1 (unsigned int port, unsigned int pin)
 {
     IFXMIPS_GPIO_SANITY;
        writel(readl(IFXMIPS_GPIO_P0_ALTSEL1 + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_ALTSEL1);
 
        return 0;
 }
-EXPORT_SYMBOL(danube_port_clear_altsel1);
+EXPORT_SYMBOL(ifxmips_port_clear_altsel1);
 
-long danube_port_read_procmem_helper(char* tag, u32* in_reg, char *buf)
+long ifxmips_port_read_procmem_helper(char* tag, u32* in_reg, char *buf)
 {
        u32 reg, bit = 0;
        unsigned int len, t;
@@ -252,10 +252,10 @@ long danube_port_read_procmem_helper(char* tag, u32* in_reg, char *buf)
 }
 
 int
-danube_port_read_procmem (char *buf, char **start, off_t offset, int count,
+ifxmips_port_read_procmem (char *buf, char **start, off_t offset, int count,
                          int *eof, void *data)
 {
-       long len = sprintf (buf, "\nDanube Port Settings\n");
+       long len = sprintf (buf, "\nIFXMips Port Settings\n");
 
        len += sprintf (buf + len,
                        "         3         2         1         0\n");
@@ -264,24 +264,24 @@ danube_port_read_procmem (char *buf, char **start, off_t offset, int count,
        len += sprintf (buf + len,
                        "----------------------------------------\n");
 
-       len += danube_port_read_procmem_helper("P0-OUT", IFXMIPS_GPIO_P0_OUT, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-OUT", IFXMIPS_GPIO_P1_OUT, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-IN ", IFXMIPS_GPIO_P0_IN, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-IN ", IFXMIPS_GPIO_P1_IN, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-DIR", IFXMIPS_GPIO_P0_DIR, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-DIR", IFXMIPS_GPIO_P1_DIR, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-STO ", IFXMIPS_GPIO_P0_STOFF, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-STO ", IFXMIPS_GPIO_P1_STOFF, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-PUDE", IFXMIPS_GPIO_P0_PUDEN, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-PUDE", IFXMIPS_GPIO_P1_PUDEN, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-OD  ", IFXMIPS_GPIO_P0_OD, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-OD  ", IFXMIPS_GPIO_P1_OD, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-PUDS", IFXMIPS_GPIO_P0_PUDSEL, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-PUDS", IFXMIPS_GPIO_P1_PUDSEL, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-ALT0", IFXMIPS_GPIO_P0_ALTSEL0, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-ALT0", IFXMIPS_GPIO_P1_ALTSEL0, &buf[len]);
-       len += danube_port_read_procmem_helper("P0-ALT1", IFXMIPS_GPIO_P0_ALTSEL1, &buf[len]);
-       len += danube_port_read_procmem_helper("P1-ALT1", IFXMIPS_GPIO_P1_ALTSEL1, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-OUT", IFXMIPS_GPIO_P0_OUT, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-OUT", IFXMIPS_GPIO_P1_OUT, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-IN ", IFXMIPS_GPIO_P0_IN, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-IN ", IFXMIPS_GPIO_P1_IN, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-DIR", IFXMIPS_GPIO_P0_DIR, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-DIR", IFXMIPS_GPIO_P1_DIR, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-STO ", IFXMIPS_GPIO_P0_STOFF, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-STO ", IFXMIPS_GPIO_P1_STOFF, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-PUDE", IFXMIPS_GPIO_P0_PUDEN, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-PUDE", IFXMIPS_GPIO_P1_PUDEN, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-OD  ", IFXMIPS_GPIO_P0_OD, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-OD  ", IFXMIPS_GPIO_P1_OD, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-PUDS", IFXMIPS_GPIO_P0_PUDSEL, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-PUDS", IFXMIPS_GPIO_P1_PUDSEL, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-ALT0", IFXMIPS_GPIO_P0_ALTSEL0, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-ALT0", IFXMIPS_GPIO_P1_ALTSEL0, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P0-ALT1", IFXMIPS_GPIO_P0_ALTSEL1, &buf[len]);
+       len += ifxmips_port_read_procmem_helper("P1-ALT1", IFXMIPS_GPIO_P1_ALTSEL1, &buf[len]);
        len = len + sprintf (buf + len, "\n\n");
 
        *eof = 1;
@@ -290,23 +290,23 @@ danube_port_read_procmem (char *buf, char **start, off_t offset, int count,
 }
 
 static int
-danube_port_open (struct inode *inode, struct file *filep)
+ifxmips_port_open (struct inode *inode, struct file *filep)
 {
        return 0;
 }
 
 static int
-danube_port_release (struct inode *inode, struct file *filelp)
+ifxmips_port_release (struct inode *inode, struct file *filelp)
 {
        return 0;
 }
 
 static int
-danube_port_ioctl (struct inode *inode, struct file *filp,
+ifxmips_port_ioctl (struct inode *inode, struct file *filp,
                        unsigned int cmd, unsigned long arg)
 {
        int ret = 0;
-       volatile struct danube_port_ioctl_parm parm;
+       volatile struct ifxmips_port_ioctl_parm parm;
 
        if (_IOC_TYPE (cmd) != IFXMIPS_PORT_IOC_MAGIC)
                return -EINVAL;
@@ -314,15 +314,15 @@ danube_port_ioctl (struct inode *inode, struct file *filp,
        if (_IOC_DIR (cmd) & _IOC_WRITE) {
                if (!access_ok
                    (VERIFY_READ, arg,
-                    sizeof (struct danube_port_ioctl_parm)))
+                    sizeof (struct ifxmips_port_ioctl_parm)))
                        return -EFAULT;
                ret = copy_from_user ((void *) &parm, (void *) arg,
-                                     sizeof (struct danube_port_ioctl_parm));
+                                     sizeof (struct ifxmips_port_ioctl_parm));
        }
        if (_IOC_DIR (cmd) & _IOC_READ) {
                if (!access_ok
                    (VERIFY_WRITE, arg,
-                    sizeof (struct danube_port_ioctl_parm)))
+                    sizeof (struct ifxmips_port_ioctl_parm)))
                        return -EFAULT;
        }
 
@@ -332,64 +332,64 @@ danube_port_ioctl (struct inode *inode, struct file *filp,
        switch (cmd) {
        case IFXMIPS_PORT_IOCOD:
                if (parm.value == 0x00)
-                       danube_port_clear_open_drain(parm.port, parm.pin);
+                       ifxmips_port_clear_open_drain(parm.port, parm.pin);
                else
-                       danube_port_set_open_drain(parm.port, parm.pin);
+                       ifxmips_port_set_open_drain(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCPUDSEL:
                if (parm.value == 0x00)
-                       danube_port_clear_pudsel(parm.port, parm.pin);
+                       ifxmips_port_clear_pudsel(parm.port, parm.pin);
                else
-                       danube_port_set_pudsel(parm.port, parm.pin);
+                       ifxmips_port_set_pudsel(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCPUDEN:
                if (parm.value == 0x00)
-                       danube_port_clear_puden(parm.port, parm.pin);
+                       ifxmips_port_clear_puden(parm.port, parm.pin);
                else
-                       danube_port_set_puden(parm.port, parm.pin);
+                       ifxmips_port_set_puden(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCSTOFF:
                if (parm.value == 0x00)
-                       danube_port_clear_stoff(parm.port, parm.pin);
+                       ifxmips_port_clear_stoff(parm.port, parm.pin);
                else
-                       danube_port_set_stoff(parm.port, parm.pin);
+                       ifxmips_port_set_stoff(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCDIR:
                if (parm.value == 0x00)
-                       danube_port_set_dir_in(parm.port, parm.pin);
+                       ifxmips_port_set_dir_in(parm.port, parm.pin);
                else
-                       danube_port_set_dir_out(parm.port, parm.pin);
+                       ifxmips_port_set_dir_out(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCOUTPUT:
                if (parm.value == 0x00)
-                       danube_port_clear_output(parm.port, parm.pin);
+                       ifxmips_port_clear_output(parm.port, parm.pin);
                else
-                       danube_port_set_output(parm.port, parm.pin);
+                       ifxmips_port_set_output(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCALTSEL0:
                if (parm.value == 0x00)
-                       danube_port_clear_altsel0(parm.port, parm.pin);
+                       ifxmips_port_clear_altsel0(parm.port, parm.pin);
                else
-                       danube_port_set_altsel0(parm.port, parm.pin);
+                       ifxmips_port_set_altsel0(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCALTSEL1:
                if (parm.value == 0x00)
-                       danube_port_clear_altsel1(parm.port, parm.pin);
+                       ifxmips_port_clear_altsel1(parm.port, parm.pin);
                else
-                       danube_port_set_altsel1(parm.port, parm.pin);
+                       ifxmips_port_set_altsel1(parm.port, parm.pin);
                break;
 
        case IFXMIPS_PORT_IOCINPUT:
-               parm.value = danube_port_get_input(parm.port, parm.pin);
+               parm.value = ifxmips_port_get_input(parm.port, parm.pin);
                copy_to_user((void*)arg, (void*)&parm,
-                       sizeof(struct danube_port_ioctl_parm));
+                       sizeof(struct ifxmips_port_ioctl_parm));
                break;
 
        default:
@@ -402,41 +402,41 @@ danube_port_ioctl (struct inode *inode, struct file *filp,
 }
 
 static struct file_operations port_fops = {
-      .open = danube_port_open,
-      .release = danube_port_release,
-      .ioctl = danube_port_ioctl
+      .open = ifxmips_port_open,
+      .release = ifxmips_port_release,
+      .ioctl = ifxmips_port_ioctl
 };
 
 int __init
-danube_gpio_init (void)
+ifxmips_gpio_init (void)
 {
        int retval = 0;
 
        sema_init (&port_sem, 1);
 
-       danube_gpio_major = register_chrdev(0, "danube_gpio", &port_fops);
-       if (!danube_gpio_major)
+       ifxmips_gpio_major = register_chrdev(0, "ifxmips_gpio", &port_fops);
+       if (!ifxmips_gpio_major)
        {
-               printk("danube-port: Error! Could not register port device. #%d\n", danube_gpio_major);
+               printk("ifxmips-port: Error! Could not register port device. #%d\n", ifxmips_gpio_major);
                retval = -EINVAL;
                goto out;
        }
 
-       create_proc_read_entry("danube_gpio", 0, NULL,
-                               danube_port_read_procmem, NULL);
+       create_proc_read_entry("ifxmips_gpio", 0, NULL,
+                               ifxmips_port_read_procmem, NULL);
 
-       printk("registered danube gpio driver\n");
+       printk("registered ifxmips gpio driver\n");
 
 out:
        return retval;
 }
 
 void __exit
-danube_gpio_exit (void)
+ifxmips_gpio_exit (void)
 {
-       unregister_chrdev(danube_gpio_major, "danube_gpio");
-       remove_proc_entry("danube_gpio", NULL);
+       unregister_chrdev(ifxmips_gpio_major, "ifxmips_gpio");
+       remove_proc_entry("ifxmips_gpio", NULL);
 }
 
-module_init(danube_gpio_init);
-module_exit(danube_gpio_exit);
+module_init(ifxmips_gpio_init);
+module_exit(ifxmips_gpio_exit);