Ejemplo n.º 1
0
static int sch_gpio_resume_direction_out(struct gpio_chip *gc,
        unsigned gpio_num, int val)
{
    u8 curr_dirs;

    sch_gpio_resume_set(gc, gpio_num, val);

    spin_lock(&gpio_lock);

    curr_dirs = inb(gpio_ba + RGIO);
    if (curr_dirs & (1 << gpio_num))
        outb(curr_dirs & ~(1 << gpio_num), gpio_ba + RGIO);

    spin_unlock(&gpio_lock);
    return 0;
}
Ejemplo n.º 2
0
static int sch_gpio_resume_direction_out(struct gpio_chip *gc,
					unsigned gpio_num, int val)
{
	u8 curr_dirs;
	unsigned short offset, bit;

	sch_gpio_resume_set(gc, gpio_num, val);

	offset = RGIO + gpio_num / 8;
	bit = gpio_num % 8;

	spin_lock(&gpio_lock);

	curr_dirs = inb(gpio_ba + offset);
	if (curr_dirs & (1 << bit))
		outb(curr_dirs & ~(1 << bit), gpio_ba + offset);

	spin_unlock(&gpio_lock);
	return 0;
}