示例#1
0
void gpio_out(usb_dev_handle *h, int gpio, int value)
{
	int shift_dir = gpio_dir_shift(gpio);
 	int shift_val = gpio_val_shift(gpio);
	unsigned char reg = gpio_read_reg(h);
	reg |= (1 << shift_dir);
	reg &= ~(1 << shift_val);
	reg |= (value << shift_val);
	gpio_write_reg(h, reg);
}
示例#2
0
void gpio_in(usb_dev_handle *h, int gpio, int pullup)
{
	int shift_dir = gpio_dir_shift(gpio);
 	int shift_val = gpio_val_shift(gpio);

	unsigned char reg = gpio_read_reg(h);
	reg &= ~(1 << shift_dir);
	reg &= ~(1 << shift_val);
	reg |= (pullup << shift_val);
	gpio_write_reg(h, reg);
}
示例#3
0
文件: pfc.c 项目: Aircell/asp-kernel
static void write_config_reg(struct pinmux_info *gpioc,
			     struct pinmux_cfg_reg *crp,
			     int index)
{
	unsigned long ncomb, pos, value;

	ncomb = 1 << crp->field_width;
	pos = index / ncomb;
	value = index % ncomb;

	gpio_write_reg(crp->reg, crp->reg_width, crp->field_width, pos, value);
}