IMX_GPIO_DR_REG
pad = READ4(sc, IMX_GPIO_DR_REG);
SET4(sc, IMX_GPIO_DR_REG, (pad << pin->gp_pin));
SET4(sc, IMX_GPIO_DR_REG, (1U << pin));
CLEAR4(sc, IMX_GPIO_DR_REG, (1U << pin));
*val = (READ4(sc, IMX_GPIO_DR_REG) >> pin) & 1;
WRITE4(sc, IMX_GPIO_DR_REG,
(READ4(sc, IMX_GPIO_DR_REG) ^ (1U << pin)));
*orig_pins = READ4(sc, IMX_GPIO_DR_REG);
WRITE4(sc, IMX_GPIO_DR_REG,
(READ4(sc, IMX_GPIO_DR_REG) & ~clear_pins) ^ change_pins);
pads = READ4(sc, IMX_GPIO_DR_REG);
WRITE4(sc, IMX_GPIO_DR_REG,
(READ4(sc, IMX_GPIO_DR_REG) & ~drclr) | drset);