GPIO_PIN_MODE_DIR_SHIFT
reg &= ~(GPIO_PIN_MODE_DIR_MASK << GPIO_PIN_MODE_DIR_SHIFT);
reg |= val << GPIO_PIN_MODE_DIR_SHIFT;
reg >>= GPIO_PIN_MODE_DIR_SHIFT;