+ # make sure the device gets closed before exit
+ atexit.register(self.close)
+ if MCP2221_RESET_DELAY >= 0:
+ self._reset()
+ self._gp_config = [0x07] * 4 # "don't care" initial value
+ for pin in range(4):
+ self.gp_set_mode(pin, self.GP_GPIO) # set to GPIO mode
+ self.gpio_set_direction(pin, 1) # set to INPUT
+
+ def close(self):
+ """Close the hid device. Does nothing if the device is not open."""
+ self._hid.close()
+
+ def __del__(self):
+ # try to close the device before destroying the instance
+ self.close()