diff options
author | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-01-11 10:42:06 +0000 |
---|---|---|
committer | florian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73> | 2008-01-11 10:42:06 +0000 |
commit | 9dd1cc458f802fc14461f2eff78fb9992ba73c0b (patch) | |
tree | d4bdb75621c44823d72ffa61a04c762262350b3a /target/linux/rb532/files/arch/mips/rb500/misc.c | |
parent | aa00d4ee30c5a55834e891f77476489b539036b6 (diff) |
Upgrade rb532 to .23, provide generic GPIO API to this board
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10171 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/rb532/files/arch/mips/rb500/misc.c')
-rw-r--r-- | target/linux/rb532/files/arch/mips/rb500/misc.c | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/target/linux/rb532/files/arch/mips/rb500/misc.c b/target/linux/rb532/files/arch/mips/rb500/misc.c deleted file mode 100644 index 42039b7aa..000000000 --- a/target/linux/rb532/files/arch/mips/rb500/misc.c +++ /dev/null @@ -1,56 +0,0 @@ -#include <linux/module.h> -#include <linux/kernel.h> /* printk() */ -#include <linux/types.h> /* size_t */ -#include <linux/pci.h> -#include <linux/spinlock.h> -#include <asm/rc32434/rb.h> - -#define GPIO_BADDR 0xb8050000 - - -static volatile unsigned char *devCtl3Base = 0; -static unsigned char latchU5State = 0; -static spinlock_t clu5Lock = SPIN_LOCK_UNLOCKED; - -void set434Reg(unsigned regOffs, unsigned bit, unsigned len, unsigned val) { - unsigned flags, data; - unsigned i = 0; - spin_lock_irqsave(&clu5Lock, flags); - data = *(volatile unsigned *) (IDT434_REG_BASE + regOffs); - for (i = 0; i != len; ++i) { - if (val & (1 << i)) data |= (1 << (i + bit)); - else data &= ~(1 << (i + bit)); - } - *(volatile unsigned *) (IDT434_REG_BASE + regOffs) = data; - spin_unlock_irqrestore(&clu5Lock, flags); -} - -void changeLatchU5(unsigned char orMask, unsigned char nandMask) { - unsigned flags; - spin_lock_irqsave(&clu5Lock, flags); - latchU5State = (latchU5State | orMask) & ~nandMask; - if( !devCtl3Base) devCtl3Base = (volatile unsigned char *) - KSEG1ADDR(*(volatile unsigned *) KSEG1ADDR(0x18010030)); - *devCtl3Base = latchU5State; - spin_unlock_irqrestore(&clu5Lock, flags); -} - -u32 gpio_get(gpio_func func) -{ - return readl((void *) GPIO_BADDR + func); -} - -void gpio_set(gpio_func func, u32 mask, u32 value) -{ - u32 val = readl((void *) GPIO_BADDR + func); - - val &= ~mask; - val |= value & mask; - - writel(val, (void *) GPIO_BADDR + func); -} - -EXPORT_SYMBOL(gpio_set); -EXPORT_SYMBOL(gpio_get); -EXPORT_SYMBOL(set434Reg); -EXPORT_SYMBOL(changeLatchU5); |