|
@@ -36,24 +36,13 @@
|
|
|
* published by the Free Software Foundation.
|
|
|
*/
|
|
|
#include <common.h>
|
|
|
-#include <asm/arch/gpio.h>
|
|
|
+#include <asm/omap_gpio.h>
|
|
|
#include <asm/io.h>
|
|
|
#include <asm/errno.h>
|
|
|
|
|
|
-static struct gpio_bank gpio_bank_34xx[6] = {
|
|
|
- { (void *)OMAP34XX_GPIO1_BASE, METHOD_GPIO_24XX },
|
|
|
- { (void *)OMAP34XX_GPIO2_BASE, METHOD_GPIO_24XX },
|
|
|
- { (void *)OMAP34XX_GPIO3_BASE, METHOD_GPIO_24XX },
|
|
|
- { (void *)OMAP34XX_GPIO4_BASE, METHOD_GPIO_24XX },
|
|
|
- { (void *)OMAP34XX_GPIO5_BASE, METHOD_GPIO_24XX },
|
|
|
- { (void *)OMAP34XX_GPIO6_BASE, METHOD_GPIO_24XX },
|
|
|
-};
|
|
|
-
|
|
|
-static struct gpio_bank *gpio_bank = &gpio_bank_34xx[0];
|
|
|
-
|
|
|
-static inline struct gpio_bank *get_gpio_bank(int gpio)
|
|
|
+static inline const struct gpio_bank *get_gpio_bank(int gpio)
|
|
|
{
|
|
|
- return &gpio_bank[gpio >> 5];
|
|
|
+ return &omap_gpio_bank[gpio >> 5];
|
|
|
}
|
|
|
|
|
|
static inline int get_gpio_index(int gpio)
|
|
@@ -79,14 +68,15 @@ static int check_gpio(int gpio)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static void _set_gpio_direction(struct gpio_bank *bank, int gpio, int is_input)
|
|
|
+static void _set_gpio_direction(const struct gpio_bank *bank, int gpio,
|
|
|
+ int is_input)
|
|
|
{
|
|
|
void *reg = bank->base;
|
|
|
u32 l;
|
|
|
|
|
|
switch (bank->method) {
|
|
|
case METHOD_GPIO_24XX:
|
|
|
- reg += OMAP24XX_GPIO_OE;
|
|
|
+ reg += OMAP_GPIO_OE;
|
|
|
break;
|
|
|
default:
|
|
|
return;
|
|
@@ -101,7 +91,7 @@ static void _set_gpio_direction(struct gpio_bank *bank, int gpio, int is_input)
|
|
|
|
|
|
void omap_set_gpio_direction(int gpio, int is_input)
|
|
|
{
|
|
|
- struct gpio_bank *bank;
|
|
|
+ const struct gpio_bank *bank;
|
|
|
|
|
|
if (check_gpio(gpio) < 0)
|
|
|
return;
|
|
@@ -109,7 +99,8 @@ void omap_set_gpio_direction(int gpio, int is_input)
|
|
|
_set_gpio_direction(bank, get_gpio_index(gpio), is_input);
|
|
|
}
|
|
|
|
|
|
-static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
|
|
|
+static void _set_gpio_dataout(const struct gpio_bank *bank, int gpio,
|
|
|
+ int enable)
|
|
|
{
|
|
|
void *reg = bank->base;
|
|
|
u32 l = 0;
|
|
@@ -117,9 +108,9 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
|
|
|
switch (bank->method) {
|
|
|
case METHOD_GPIO_24XX:
|
|
|
if (enable)
|
|
|
- reg += OMAP24XX_GPIO_SETDATAOUT;
|
|
|
+ reg += OMAP_GPIO_SETDATAOUT;
|
|
|
else
|
|
|
- reg += OMAP24XX_GPIO_CLEARDATAOUT;
|
|
|
+ reg += OMAP_GPIO_CLEARDATAOUT;
|
|
|
l = 1 << gpio;
|
|
|
break;
|
|
|
default:
|
|
@@ -132,7 +123,7 @@ static void _set_gpio_dataout(struct gpio_bank *bank, int gpio, int enable)
|
|
|
|
|
|
void omap_set_gpio_dataout(int gpio, int enable)
|
|
|
{
|
|
|
- struct gpio_bank *bank;
|
|
|
+ const struct gpio_bank *bank;
|
|
|
|
|
|
if (check_gpio(gpio) < 0)
|
|
|
return;
|
|
@@ -142,7 +133,7 @@ void omap_set_gpio_dataout(int gpio, int enable)
|
|
|
|
|
|
int omap_get_gpio_datain(int gpio)
|
|
|
{
|
|
|
- struct gpio_bank *bank;
|
|
|
+ const struct gpio_bank *bank;
|
|
|
void *reg;
|
|
|
|
|
|
if (check_gpio(gpio) < 0)
|
|
@@ -151,7 +142,7 @@ int omap_get_gpio_datain(int gpio)
|
|
|
reg = bank->base;
|
|
|
switch (bank->method) {
|
|
|
case METHOD_GPIO_24XX:
|
|
|
- reg += OMAP24XX_GPIO_DATAIN;
|
|
|
+ reg += OMAP_GPIO_DATAIN;
|
|
|
break;
|
|
|
default:
|
|
|
return -EINVAL;
|
|
@@ -160,7 +151,7 @@ int omap_get_gpio_datain(int gpio)
|
|
|
& (1 << get_gpio_index(gpio))) != 0;
|
|
|
}
|
|
|
|
|
|
-static void _reset_gpio(struct gpio_bank *bank, int gpio)
|
|
|
+static void _reset_gpio(const struct gpio_bank *bank, int gpio)
|
|
|
{
|
|
|
_set_gpio_direction(bank, get_gpio_index(gpio), 1);
|
|
|
}
|
|
@@ -175,7 +166,7 @@ int omap_request_gpio(int gpio)
|
|
|
|
|
|
void omap_free_gpio(int gpio)
|
|
|
{
|
|
|
- struct gpio_bank *bank;
|
|
|
+ const struct gpio_bank *bank;
|
|
|
|
|
|
if (check_gpio(gpio) < 0)
|
|
|
return;
|