aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-pxa/generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-pxa/generic.c')
-rw-r--r--arch/arm/mach-pxa/generic.c93
1 files changed, 0 insertions, 93 deletions
diff --git a/arch/arm/mach-pxa/generic.c b/arch/arm/mach-pxa/generic.c
index 76970598f550..80721c610d41 100644
--- a/arch/arm/mach-pxa/generic.c
+++ b/arch/arm/mach-pxa/generic.c
@@ -32,7 +32,6 @@
32#include <asm/mach/map.h> 32#include <asm/mach/map.h>
33 33
34#include <asm/arch/pxa-regs.h> 34#include <asm/arch/pxa-regs.h>
35#include <asm/arch/gpio.h>
36 35
37#include "generic.h" 36#include "generic.h"
38 37
@@ -67,97 +66,6 @@ unsigned int get_memclk_frequency_10khz(void)
67EXPORT_SYMBOL(get_memclk_frequency_10khz); 66EXPORT_SYMBOL(get_memclk_frequency_10khz);
68 67
69/* 68/*
70 * Handy function to set GPIO alternate functions
71 */
72int pxa_last_gpio;
73
74int pxa_gpio_mode(int gpio_mode)
75{
76 unsigned long flags;
77 int gpio = gpio_mode & GPIO_MD_MASK_NR;
78 int fn = (gpio_mode & GPIO_MD_MASK_FN) >> 8;
79 int gafr;
80
81 if (gpio > pxa_last_gpio)
82 return -EINVAL;
83
84 local_irq_save(flags);
85 if (gpio_mode & GPIO_DFLT_LOW)
86 GPCR(gpio) = GPIO_bit(gpio);
87 else if (gpio_mode & GPIO_DFLT_HIGH)
88 GPSR(gpio) = GPIO_bit(gpio);
89 if (gpio_mode & GPIO_MD_MASK_DIR)
90 GPDR(gpio) |= GPIO_bit(gpio);
91 else
92 GPDR(gpio) &= ~GPIO_bit(gpio);
93 gafr = GAFR(gpio) & ~(0x3 << (((gpio) & 0xf)*2));
94 GAFR(gpio) = gafr | (fn << (((gpio) & 0xf)*2));
95 local_irq_restore(flags);
96
97 return 0;
98}
99
100EXPORT_SYMBOL(pxa_gpio_mode);
101
102int gpio_direction_input(unsigned gpio)
103{
104 unsigned long flags;
105 u32 mask;
106
107 if (gpio > pxa_last_gpio)
108 return -EINVAL;
109
110 mask = GPIO_bit(gpio);
111 local_irq_save(flags);
112 GPDR(gpio) &= ~mask;
113 local_irq_restore(flags);
114
115 return 0;
116}
117EXPORT_SYMBOL(gpio_direction_input);
118
119int gpio_direction_output(unsigned gpio, int value)
120{
121 unsigned long flags;
122 u32 mask;
123
124 if (gpio > pxa_last_gpio)
125 return -EINVAL;
126
127 mask = GPIO_bit(gpio);
128 local_irq_save(flags);
129 if (value)
130 GPSR(gpio) = mask;
131 else
132 GPCR(gpio) = mask;
133 GPDR(gpio) |= mask;
134 local_irq_restore(flags);
135
136 return 0;
137}
138EXPORT_SYMBOL(gpio_direction_output);
139
140/*
141 * Return GPIO level
142 */
143int pxa_gpio_get_value(unsigned gpio)
144{
145 return __gpio_get_value(gpio);
146}
147
148EXPORT_SYMBOL(pxa_gpio_get_value);
149
150/*
151 * Set output GPIO level
152 */
153void pxa_gpio_set_value(unsigned gpio, int value)
154{
155 __gpio_set_value(gpio, value);
156}
157
158EXPORT_SYMBOL(pxa_gpio_set_value);
159
160/*
161 * Routine to safely enable or disable a clock in the CKEN 69 * Routine to safely enable or disable a clock in the CKEN
162 */ 70 */
163void __pxa_set_cken(int clock, int enable) 71void __pxa_set_cken(int clock, int enable)
@@ -172,7 +80,6 @@ void __pxa_set_cken(int clock, int enable)
172 80
173 local_irq_restore(flags); 81 local_irq_restore(flags);
174} 82}
175
176EXPORT_SYMBOL(__pxa_set_cken); 83EXPORT_SYMBOL(__pxa_set_cken);
177 84
178/* 85/*