summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorLuotao Fu <l.fu@pengutronix.de>2009-06-25 16:20:26 +0200
committerLuotao Fu <l.fu@pengutronix.de>2009-06-25 16:20:26 +0200
commitd5ec92129e1c67ac86e92c22d54bb090fb00d616 (patch)
treef28fb3b8ce9f3c4930e6335cedcca9418c253ea7 /arch/arm
parent7733de908ba918ca47f13157335a100d74ba7cf1 (diff)
downloadbarebox-d5ec92129e1c67ac86e92c22d54bb090fb00d616.tar.gz
barebox-d5ec92129e1c67ac86e92c22d54bb090fb00d616.tar.xz
mx2: add gpio direction/value setting calls
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-imx/gpio.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/gpio.c b/arch/arm/mach-imx/gpio.c
index 08d1eb5740..8d767208dd 100644
--- a/arch/arm/mach-imx/gpio.c
+++ b/arch/arm/mach-imx/gpio.c
@@ -86,3 +86,26 @@ void imx_gpio_mode(int gpio_mode)
}
+void imx_gpio_set_value(unsigned gpio, int value)
+{
+ if(value)
+ DR(gpio >> GPIO_PORT_SHIFT) |= (1 << (gpio & GPIO_PIN_MASK));
+ else
+ DR(gpio >> GPIO_PORT_SHIFT) &= ~(1 << (gpio & GPIO_PIN_MASK));
+}
+
+int imx_gpio_direction_input(unsigned gpio)
+{
+ imx_gpio_mode(gpio | GPIO_IN | GPIO_GIUS | GPIO_DR);
+ return 0;
+}
+
+
+int imx_gpio_direction_output(unsigned gpio, int value)
+{
+ imx_gpio_set_value(gpio, value);
+ imx_gpio_mode(gpio | GPIO_OUT | GPIO_GIUS | GPIO_DR);
+ return 0;
+}
+
+