コード例 #1
0
ファイル: pl2303.c プロジェクト: herocodemaster/pl2303gpio
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
ファイル: pl2303.c プロジェクト: herocodemaster/pl2303gpio
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);
}