+            raise NotImplementedError("Internal pullups and pulldowns not supported")
+        if mode in (Pin.IN, Pin.OUT):
+            # All pins can do GPIO
+            # mcp2221.gp_set_mode(self.id, mcp2221.GP_GPIO)
+            # mcp2221.gpio_set_direction(self.id, mode)
+            self._mode = mode
+        elif mode == Pin.ADC: