1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*
- * Generic GPIO API and pinmux table support
- *
- * Copyright (c) 2008 Magnus Damm
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
- #ifndef __ASM_ARCH_GPIO_H
- #define __ASM_ARCH_GPIO_H
- #include <linux/kernel.h>
- #include <linux/errno.h>
- #include <linux/sh_pfc.h>
- #include <linux/io.h>
- #ifdef CONFIG_GPIOLIB
- static inline int irq_to_gpio(unsigned int irq)
- {
- return -ENOSYS;
- }
- #else
- #define __ARM_GPIOLIB_COMPLEX
- #endif /* CONFIG_GPIOLIB */
- /*
- * FIXME !!
- *
- * current gpio frame work doesn't have
- * the method to control only pull up/down/free.
- * this function should be replaced by correct gpio function
- */
- static inline void __init gpio_direction_none(u32 addr)
- {
- __raw_writeb(0x00, addr);
- }
- static inline void __init gpio_request_pullup(u32 addr)
- {
- u8 data = __raw_readb(addr);
- data &= 0x0F;
- data |= 0xC0;
- __raw_writeb(data, addr);
- }
- static inline void __init gpio_request_pulldown(u32 addr)
- {
- u8 data = __raw_readb(addr);
- data &= 0x0F;
- data |= 0xA0;
- __raw_writeb(data, addr);
- }
- #endif /* __ASM_ARCH_GPIO_H */
|