-    def init(self, baudrate=100000, polarity=0, phase=0, bits=8,
-                  firstbit=MSB, sck=None, mosi=None, miso=None):
-        self.cs = 0
-        self.freq = baudrate
-        if polarity == 0 and phase == 0:
-            self.mode = 0
-        elif polarity == 0 and phase == 1:
-            self.mode = 1
-        elif polarity == 1 and phase == 0:
-            raise ValueError("SPI mode 2 is not supported.")
-        elif polarity == 1 and phase == 1:
-            self.mode = 3
-        else:
-            raise ValueError("Unknown SPI mode.")
+    # pylint: disable=too-many-arguments
+    def init(
+        self,
+        baudrate=100000,
+        polarity=0,
+        phase=0,
+        bits=8,
+        firstbit=MSB,
+        sck=None,
+        mosi=None,
+        miso=None,
+    ):
+        """Initialize the Port"""
+        self._port.set_frequency(baudrate)
+        # FTDI device can only support mode 0 and mode 2
+        # due to the limitation of MPSSE engine.
+        # This means CPHA must = 0
+        self._port._cpol = polarity
+        if phase != 0:
+            raise ValueError("Only SPI phase 0 is supported by FT232H.")
+        self._port._cpha = phase
+
+    # pylint: enable=too-many-arguments
+
+    @property
+    def frequency(self):
+        """Return the current frequency"""
+        return self._port.frequency