GPIO_SHIFT
reg &= ~(DATA_OUT_MASK << GPIO_SHIFT(pin));
reg |= 0x1 << GPIO_SHIFT(pin);
if (reg & 0x1 << GPIO_SHIFT(pin)) {
reg &= ~(DATA_OUT_MASK << GPIO_SHIFT(pin));
reg &= ~(DATA_OUT_MASK << GPIO_SHIFT(pin));
reg |= 0x1 << GPIO_SHIFT(pin);
if ((reg & ENABLE_MASK << GPIO_SHIFT(pin)) == 0)
reg &= ~(ENABLE_MASK << GPIO_SHIFT(pin));
reg |= DIROUT_DISABLE << GPIO_SHIFT(pin);
reg &= ~(ENABLE_MASK << GPIO_SHIFT(pin));
reg |= 0x1 << GPIO_SHIFT(pin);