#include <asm/arch/hardware.h>
static int gpio_direction(unsigned gpio,
enum gpio_direction direction)
struct gpio_regs *regs = (struct gpio_regs *)CONFIG_GPIO_BASE;
val = readl(®s->gpiodir);
if (direction == GPIO_DIRECTION_OUT)
writel(val, ®s->gpiodir);
int gpio_set_value(unsigned gpio, int value)
struct gpio_regs *regs = (struct gpio_regs *)CONFIG_GPIO_BASE;
writel(1 << gpio, ®s->gpiodata[DATA_REG_ADDR(gpio)]);
writel(0, ®s->gpiodata[DATA_REG_ADDR(gpio)]);
int gpio_get_value(unsigned gpio)
struct gpio_regs *regs = (struct gpio_regs *)CONFIG_GPIO_BASE;
val = readl(®s->gpiodata[DATA_REG_ADDR(gpio)]);
int gpio_request(unsigned gpio, const char *label)
if (gpio >= SPEAR_GPIO_COUNT)