mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
change danube 2 ifxmips
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@9821 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
@@ -38,12 +38,12 @@ static unsigned int danube_gpio_major = 0;
|
||||
static struct semaphore port_sem;
|
||||
|
||||
/* TODO do we really need this ? return in a define is forbidden by coding style */
|
||||
#define DANUBE_GPIO_SANITY {if (port > MAX_PORTS || pin > PINS_PER_PORT) return -EINVAL; }
|
||||
#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)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
printk("%s : call to obseleted function\n", __func__);
|
||||
|
||||
return 0;
|
||||
@@ -53,7 +53,7 @@ EXPORT_SYMBOL(danube_port_reserve_pin);
|
||||
int
|
||||
danube_port_free_pin (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
printk("%s : call to obseleted function\n", __func__);
|
||||
|
||||
return 0;
|
||||
@@ -63,8 +63,8 @@ EXPORT_SYMBOL(danube_port_free_pin);
|
||||
int
|
||||
danube_port_set_open_drain (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_OD + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_OD);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_OD + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_OD);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -73,8 +73,8 @@ EXPORT_SYMBOL(danube_port_set_open_drain);
|
||||
int
|
||||
danube_port_clear_open_drain (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_OD + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_OD);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_OD + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_OD);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -83,8 +83,8 @@ EXPORT_SYMBOL(danube_port_clear_open_drain);
|
||||
int
|
||||
danube_port_set_pudsel (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_PUDSEL + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_PUDSEL);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_PUDSEL + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_PUDSEL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -93,8 +93,8 @@ EXPORT_SYMBOL(danube_port_set_pudsel);
|
||||
int
|
||||
danube_port_clear_pudsel (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_PUDSEL + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_PUDSEL);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_PUDSEL + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_PUDSEL);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -103,8 +103,8 @@ EXPORT_SYMBOL(danube_port_clear_pudsel);
|
||||
int
|
||||
danube_port_set_puden (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_PUDEN + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_PUDEN);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_PUDEN + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_PUDEN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -113,8 +113,8 @@ EXPORT_SYMBOL(danube_port_set_puden);
|
||||
int
|
||||
danube_port_clear_puden (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_PUDEN + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_PUDEN);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_PUDEN + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_PUDEN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -123,8 +123,8 @@ EXPORT_SYMBOL(danube_port_clear_puden);
|
||||
int
|
||||
danube_port_set_stoff (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_STOFF + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_STOFF);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_STOFF + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_STOFF);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -133,8 +133,8 @@ EXPORT_SYMBOL(danube_port_set_stoff);
|
||||
int
|
||||
danube_port_clear_stoff (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_STOFF + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_STOFF);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_STOFF + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_STOFF);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -143,8 +143,8 @@ EXPORT_SYMBOL(danube_port_clear_stoff);
|
||||
int
|
||||
danube_port_set_dir_out (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_DIR + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_DIR);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_DIR + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_DIR);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -153,8 +153,8 @@ EXPORT_SYMBOL(danube_port_set_dir_out);
|
||||
int
|
||||
danube_port_set_dir_in (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_DIR + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_DIR);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_DIR + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_DIR);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -163,8 +163,8 @@ EXPORT_SYMBOL(danube_port_set_dir_in);
|
||||
int
|
||||
danube_port_set_output (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_OUT + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_OUT);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_OUT + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_OUT);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -173,8 +173,8 @@ EXPORT_SYMBOL(danube_port_set_output);
|
||||
int
|
||||
danube_port_clear_output (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_OUT + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_OUT);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_OUT + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_OUT);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -183,9 +183,9 @@ EXPORT_SYMBOL(danube_port_clear_output);
|
||||
int
|
||||
danube_port_get_input (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
|
||||
if (readl(DANUBE_GPIO_P0_IN + (port * 0x30)) & (1 << pin))
|
||||
if (readl(IFXMIPS_GPIO_P0_IN + (port * 0x30)) & (1 << pin))
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
@@ -195,8 +195,8 @@ EXPORT_SYMBOL(danube_port_get_input);
|
||||
int
|
||||
danube_port_set_altsel0 (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_ALTSEL0 + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_ALTSEL0);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_ALTSEL0 + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_ALTSEL0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -205,8 +205,8 @@ EXPORT_SYMBOL(danube_port_set_altsel0);
|
||||
int
|
||||
danube_port_clear_altsel0 (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_ALTSEL0 + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_ALTSEL0);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_ALTSEL0 + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_ALTSEL0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -215,8 +215,8 @@ EXPORT_SYMBOL(danube_port_clear_altsel0);
|
||||
int
|
||||
danube_port_set_altsel1 (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_ALTSEL1 + (port * 0x30)) | (1 << pin), DANUBE_GPIO_P0_ALTSEL1);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_ALTSEL1 + (port * 0x30)) | (1 << pin), IFXMIPS_GPIO_P0_ALTSEL1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -225,8 +225,8 @@ EXPORT_SYMBOL(danube_port_set_altsel1);
|
||||
int
|
||||
danube_port_clear_altsel1 (unsigned int port, unsigned int pin)
|
||||
{
|
||||
DANUBE_GPIO_SANITY;
|
||||
writel(readl(DANUBE_GPIO_P0_ALTSEL1 + (port * 0x30)) & ~(1 << pin), DANUBE_GPIO_P0_ALTSEL1);
|
||||
IFXMIPS_GPIO_SANITY;
|
||||
writel(readl(IFXMIPS_GPIO_P0_ALTSEL1 + (port * 0x30)) & ~(1 << pin), IFXMIPS_GPIO_P0_ALTSEL1);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -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", DANUBE_GPIO_P0_OUT, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-OUT", DANUBE_GPIO_P1_OUT, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-IN ", DANUBE_GPIO_P0_IN, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-IN ", DANUBE_GPIO_P1_IN, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-DIR", DANUBE_GPIO_P0_DIR, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-DIR", DANUBE_GPIO_P1_DIR, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-STO ", DANUBE_GPIO_P0_STOFF, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-STO ", DANUBE_GPIO_P1_STOFF, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-PUDE", DANUBE_GPIO_P0_PUDEN, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-PUDE", DANUBE_GPIO_P1_PUDEN, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-OD ", DANUBE_GPIO_P0_OD, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-OD ", DANUBE_GPIO_P1_OD, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-PUDS", DANUBE_GPIO_P0_PUDSEL, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-PUDS", DANUBE_GPIO_P1_PUDSEL, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-ALT0", DANUBE_GPIO_P0_ALTSEL0, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-ALT0", DANUBE_GPIO_P1_ALTSEL0, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P0-ALT1", DANUBE_GPIO_P0_ALTSEL1, &buf[len]);
|
||||
len += danube_port_read_procmem_helper("P1-ALT1", DANUBE_GPIO_P1_ALTSEL1, &buf[len]);
|
||||
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 = len + sprintf (buf + len, "\n\n");
|
||||
|
||||
*eof = 1;
|
||||
@@ -308,7 +308,7 @@ danube_port_ioctl (struct inode *inode, struct file *filp,
|
||||
int ret = 0;
|
||||
volatile struct danube_port_ioctl_parm parm;
|
||||
|
||||
if (_IOC_TYPE (cmd) != DANUBE_PORT_IOC_MAGIC)
|
||||
if (_IOC_TYPE (cmd) != IFXMIPS_PORT_IOC_MAGIC)
|
||||
return -EINVAL;
|
||||
|
||||
if (_IOC_DIR (cmd) & _IOC_WRITE) {
|
||||
@@ -330,63 +330,63 @@ danube_port_ioctl (struct inode *inode, struct file *filp,
|
||||
return -EBUSY;
|
||||
|
||||
switch (cmd) {
|
||||
case DANUBE_PORT_IOCOD:
|
||||
case IFXMIPS_PORT_IOCOD:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_clear_open_drain(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_open_drain(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCPUDSEL:
|
||||
case IFXMIPS_PORT_IOCPUDSEL:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_clear_pudsel(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_pudsel(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCPUDEN:
|
||||
case IFXMIPS_PORT_IOCPUDEN:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_clear_puden(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_puden(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCSTOFF:
|
||||
case IFXMIPS_PORT_IOCSTOFF:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_clear_stoff(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_stoff(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCDIR:
|
||||
case IFXMIPS_PORT_IOCDIR:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_set_dir_in(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_dir_out(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCOUTPUT:
|
||||
case IFXMIPS_PORT_IOCOUTPUT:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_clear_output(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_output(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCALTSEL0:
|
||||
case IFXMIPS_PORT_IOCALTSEL0:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_clear_altsel0(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_altsel0(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCALTSEL1:
|
||||
case IFXMIPS_PORT_IOCALTSEL1:
|
||||
if (parm.value == 0x00)
|
||||
danube_port_clear_altsel1(parm.port, parm.pin);
|
||||
else
|
||||
danube_port_set_altsel1(parm.port, parm.pin);
|
||||
break;
|
||||
|
||||
case DANUBE_PORT_IOCINPUT:
|
||||
case IFXMIPS_PORT_IOCINPUT:
|
||||
parm.value = danube_port_get_input(parm.port, parm.pin);
|
||||
copy_to_user((void*)arg, (void*)&parm,
|
||||
sizeof(struct danube_port_ioctl_parm));
|
||||
|
||||
Reference in New Issue
Block a user