def read(pin): oe_mask = mmio.mmio_read(gpio_base + offset_gpio_oe) oe_mask = oe_mask & ~(1 << pin) mmio.mmio_write(gpio_base + offset_gpio_oe, oe_mask) ret = mmio.mmio_read(gpio_base + offset_gpio_oe) ret2 = (ret and 1 << pin) >> pin return ret2
def write(pin, value): oe_mask = mmio.mmio_read(gpio_base + offset_gpio_oe) oe_mask = oe_mask | (1 << pin) mmio.mmio_write(gpio_base + offset_gpio_oe, oe_mask) if value == 0: mmio.mmio_write(gpio_base + offset_gpio_clear, (1 << pin)) elif value == 1: mmio.mmio_write(gpio_base + offset_gpio_set, (1 << pin))
def write(pin, value): oe_mask = mmio.mmio_read(gpio_base + offset_gpio_oe) oe_mask = oe_mask | (1 << pin) mmio.mmio_write(gpio_base + offset_gpio_oe, oe_mask) if value==0: mmio.mmio_write(gpio_base + offset_gpio_clear, (1 << pin)) elif value==1: mmio.mmio_write(gpio_base + offset_gpio_set, (1 << pin))