-def read_gpio(gpio, addr):
- data = yield from wb_read(gpio.bus, addr)
- print ("gpio%d" % addr, hex(data), bin(data))
+def gpio_configure(dut, gpio, oe, output=0, bank_sel=0):
+ csr_val = ( (bank_sel << BANKSHIFT)
+ | (oe << OESHIFT)
+ | (output << OSHIFT) )
+ # | (PUEN, PDUN, Open-drain etc...)
+ print("Configuring CSR to {0:x}".format(csr_val))
+ yield from wb_write(dut.bus, gpio, csr_val)
+
+def gpio_rd_csr(dut, gpio):
+ csr_val = yield from wb_read(dut.bus, gpio)
+ print("GPIO{0} | CSR: {1:x}".format(gpio, csr_val))
+ # gpio_parse_csr(csr_val)
+ return data
+
+def gpio_rd_input(dut, gpio):
+ in_val = yield from wb_read(dut.bus, gpio | (1<<IADDRSHIFT))
+ print("GPIO{0} | Input: {1:b}".format(gpio, in_val))