code: def connect(self, protocol=None):
          
          # Convert protocol to port enum.
          if protocol is not None:
              port = self.PORT_MAP[protocol]
          else:
              port = DAPAccess.PORT.DEFAULT
          
          try:
              self._link.connect(port)
          except DAPAccess.Error as exc:
              six.raise_from(self._convert_exception(exc), exc)
          
          # Read the current mode and save it.
          actualMode = self._link.get_swj_mode()
          self._protocol = self.PORT_MAP[actualMode]
          
          self._invalidate_cached_registers()
docs: Initialize DAP IO pins for JTAG or SWD