diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 19:11:38 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-01 19:11:38 -0700 |
commit | 9cd11c0c47b8690b47e7573311ce5c483cb344ed (patch) | |
tree | 59f51c2bb3f73b21005105095d7321d35616ca9d /arch/arm/mach-shmobile/sh-gpio.h | |
parent | b9541d94bcd2f23a069dbe84830fef1bbcd643f0 (diff) | |
parent | 1ec9c26ad0890003f2b8a4ab97164f66d5de3f6d (diff) | |
download | op-kernel-dev-9cd11c0c47b8690b47e7573311ce5c483cb344ed.zip op-kernel-dev-9cd11c0c47b8690b47e7573311ce5c483cb344ed.tar.gz |
Merge tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM soc multiplatform enablement from Olof Johansson:
"This is a pretty significant branch. It's the introduction of the
first multiplatform support on ARM, and with this (and the later
branch) merged, it is now possible to build one kernel that contains
support for highbank, vexpress, mvebu, socfpga, and picoxcell. More
platforms will be convered over in the next few releases.
Two critical last things had to be done for this to be practical and
possible:
* Today each platform has its own include directory under
mach-<mach>/include/mach/*, and traditionally that is where a lot
of driver/platform shared definitions have gone, such as platform
data structures. They now need to move out to a common location
instead, and this branch moves a large number of those out to
include/linux/platform_data.
* Each platform used to list the device trees to compile for its
boards in mach-<mach>/Makefile.boot.
Both of the above changes will mean that there are some merge
conflicts to come (and some to resolve here). It's a one-time move
and once it settles in, we should be good for quite a while. Sorry
for the overhead."
Fix conflicts as per Olof.
* tag 'multiplatform' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (51 commits)
ARM: add v7 multi-platform defconfig
ARM: msm: Move core.h contents into common.h
ARM: highbank: call highbank_pm_init from .init_machine
ARM: dtb: move all dtb targets to common Makefile
ARM: spear: move platform_data definitions
ARM: samsung: move platform_data definitions
ARM: orion: move platform_data definitions
ARM: vexpress: convert to multi-platform
ARM: initial multiplatform support
ARM: mvebu: move armada-370-xp.h in mach dir
ARM: vexpress: remove dependency on mach/* headers
ARM: picoxcell: remove dependency on mach/* headers
ARM: move all dtb targets out of Makefile.boot
ARM: picoxcell: move debug macros to include/debug
ARM: socfpga: move debug macros to include/debug
ARM: mvebu: move debug macros to include/debug
ARM: vexpress: move debug macros to include/debug
ARM: highbank: move debug macros to include/debug
ARM: move debug macros to common location
ARM: make mach/gpio.h headers optional
...
Diffstat (limited to 'arch/arm/mach-shmobile/sh-gpio.h')
-rw-r--r-- | arch/arm/mach-shmobile/sh-gpio.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/sh-gpio.h b/arch/arm/mach-shmobile/sh-gpio.h new file mode 100644 index 0000000..e834763 --- /dev/null +++ b/arch/arm/mach-shmobile/sh-gpio.h @@ -0,0 +1,48 @@ +/* + * 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/io.h> + +/* + * 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(void __iomem * addr) +{ + __raw_writeb(0x00, addr); +} + +static inline void __init gpio_request_pullup(void __iomem * addr) +{ + u8 data = __raw_readb(addr); + + data &= 0x0F; + data |= 0xC0; + __raw_writeb(data, addr); +} + +static inline void __init gpio_request_pulldown(void __iomem * addr) +{ + u8 data = __raw_readb(addr); + + data &= 0x0F; + data |= 0xA0; + + __raw_writeb(data, addr); +} + +#endif /* __ASM_ARCH_GPIO_H */ |