diff options
author | Florian Fainelli <florian@openwrt.org> | 2008-01-11 10:42:06 +0000 |
---|---|---|
committer | Florian Fainelli <florian@openwrt.org> | 2008-01-11 10:42:06 +0000 |
commit | 918e830718c2216a64d65f7ad58a784a841cd296 (patch) | |
tree | eaa219ff7e8181c8f699a72e0892def830588731 /target/linux/rb532/files/arch/mips/rb500/misc.c | |
parent | 3d7e6cc2909b520b8a79f52885984fb1103d550b (diff) | |
download | upstream-918e830718c2216a64d65f7ad58a784a841cd296.tar.gz upstream-918e830718c2216a64d65f7ad58a784a841cd296.tar.bz2 upstream-918e830718c2216a64d65f7ad58a784a841cd296.zip |
Upgrade rb532 to .23, provide generic GPIO API to this board
SVN-Revision: 10171
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 42039b7aae..0000000000 --- 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); |