move port config interface to arch/arm/plat-rk
authorkfx <kfx@rock-chips.com>
Tue, 9 Oct 2012 04:21:19 +0000 (12:21 +0800)
committerkfx <kfx@rock-chips.com>
Tue, 9 Oct 2012 04:21:19 +0000 (12:21 +0800)
arch/arm/mach-rk2928/include/mach/gpio.h
arch/arm/plat-rk/Makefile
arch/arm/plat-rk/config.c [new file with mode: 0644]
arch/arm/plat-rk/include/plat/gpio.h

index d6e8c368a2bfe6cd5ba76412ddbe3f6b3666b626..caf0c55929bd2abbf226cee947bb2b876ebde43f 100755 (executable)
@@ -373,62 +373,6 @@ static inline int irq_to_gpio(unsigned irq)
 {
        return irq - NR_GIC_IRQS + PIN_BASE;
 }
-static inline int port_output_init(unsigned int value, int on, char *name)
-{
-        int ret = 0;
-        struct port_config port;
-
-        port = get_port_config(value);
-        ret = gpio_request(port.gpio, name);
-        if(ret < 0)
-                return ret;
-        gpio_pull_updown(port.gpio, port.io.pull_mode);
-        gpio_direction_output(port.gpio, (on)? !port.io.active_low: !!port.io.active_low);
-
-        return 0;
-}
-static inline void port_output_on(unsigned int value)
-{
-        struct port_config port;
-
-        port = get_port_config(value);
-        gpio_set_value(port.gpio, !port.io.active_low);
-}
-static inline void port_output_off(unsigned int value)
-{
-        struct port_config port;
-
-        port = get_port_config(value);
-        gpio_set_value(port.gpio, !!port.io.active_low);
-}
-static inline void port_deinit(unsigned int value)
-{
-        struct port_config port;
-
-        port = get_port_config(value);
-        gpio_free(port.gpio);
-}
-static inline int port_input_init(unsigned int value, char *name)
-{
-        int ret = 0;
-        struct port_config port;
-
-        port = get_port_config(value);
-        ret = gpio_request(port.gpio, name);
-        if(ret < 0)
-                return ret;
-        gpio_pull_updown(port.gpio, port.io.pull_mode);
-        gpio_direction_input(port.gpio);
-
-        return 0;
-}
-static inline int port_get_value(unsigned int value)
-{
-        struct port_config port;
-
-        port = get_port_config(value);
-        return gpio_get_value(port.gpio);
-}
 
 #endif /* __ASSEMBLY__ */
 
index e8972c45c7ab806333b72fd938e4d4186d65b900..1c295798bdcdb485350f6240093f234a3b16a263 100644 (file)
@@ -8,6 +8,7 @@ obj-$(CONFIG_FIQ) += fiq.o
 obj-$(CONFIG_FIQ_DEBUGGER) += rk_fiq_debugger.o
 obj-$(CONFIG_RK_EARLY_PRINTK) += early_printk.o ../kernel/debug.o
 obj-y += mem_reserve.o
+obj-y += config.o
 obj-y += sram.o
 CFLAGS_sram.o += -mthumb
 obj-$(CONFIG_DDR_TEST) += memtester.o
diff --git a/arch/arm/plat-rk/config.c b/arch/arm/plat-rk/config.c
new file mode 100644 (file)
index 0000000..50cc300
--- /dev/null
@@ -0,0 +1,67 @@
+#include <mach/gpio.h>
+#include <mach/board.h>
+
+int port_output_init(unsigned int value, int on, char *name)
+{
+        int ret = 0;
+        struct port_config port;
+
+        port = get_port_config(value);
+        ret = gpio_request(port.gpio, name);
+        if(ret < 0)
+                return ret;
+        gpio_pull_updown(port.gpio, port.io.pull_mode);
+        gpio_direction_output(port.gpio, (on)? !port.io.active_low: !!port.io.active_low);
+
+        return 0;
+}
+EXPORT_SYMBOL(port_output_init);
+void port_output_on(unsigned int value)
+{
+        struct port_config port;
+
+        port = get_port_config(value);
+        gpio_set_value(port.gpio, !port.io.active_low);
+}
+EXPORT_SYMBOL(port_output_on);
+void port_output_off(unsigned int value)
+{
+        struct port_config port;
+
+        port = get_port_config(value);
+        gpio_set_value(port.gpio, !!port.io.active_low);
+}
+EXPORT_SYMBOL(port_output_off);
+void port_deinit(unsigned int value)
+{
+        struct port_config port;
+
+        port = get_port_config(value);
+        gpio_free(port.gpio);
+}
+EXPORT_SYMBOL(port_deinit);
+int port_input_init(unsigned int value, char *name)
+{
+        int ret = 0;
+        struct port_config port;
+
+        port = get_port_config(value);
+        ret = gpio_request(port.gpio, name);
+        if(ret < 0)
+                return ret;
+        gpio_pull_updown(port.gpio, port.io.pull_mode);
+        gpio_direction_input(port.gpio);
+
+        return 0;
+}
+EXPORT_SYMBOL(port_input_init);
+int port_get_value(unsigned int value)
+{
+        struct port_config port;
+
+        port = get_port_config(value);
+        return gpio_get_value(port.gpio);
+}
+EXPORT_SYMBOL(port_get_value);
+
+
index 7e5beca042303dcb57163f6effc5ca45b2444ccf..d9846f46d6966fd535433cbe7fd7d24828bfbc54 100644 (file)
@@ -43,6 +43,12 @@ static inline struct port_config get_port_config(unsigned int value)
         return port;
 }
 void gpio_set_iomux(int gpio);
+int port_output_init(unsigned int value, int on, char *name);
+void port_output_on(unsigned int value);
+void port_output_off(unsigned int value);
+int port_input_init(unsigned int value, char *name);
+int port_get_value(unsigned int value);
+void port_deinit(unsigned int value);
 
 typedef enum eGPIOPinLevel
 {