GPIO_DR
return (GPIO_READ(gpio, GPIO_DR) >> pin) & 1;
old = GPIO_READ(gpio, GPIO_DR);
GPIO_WRITE(gpio, GPIO_DR, new);
value = GPIO_READ(gpio, GPIO_DR);
val = __SHIFTOUT(GPIO_READ(gpio, GPIO_DR), __BIT(pin));
old = GPIO_READ(gpio, GPIO_DR);
GPIO_WRITE(gpio, GPIO_DR, new);