from machine import SPI as _SPI
         from microcontroller.pin import spiPorts
         for portId, portSck, portMosi, portMiso in spiPorts:
-            if clock == portSck and MOSI == portMosi and MISO == portMiso:
+            if ((clock == portSck) and                   # Clock is required!
+                (MOSI == portMosi or MOSI == None) and   # But can do with just output
+                (MISO == portMiso or MISO == None)):      # Or just input
                 self._spi = _SPI(portId)
                 self._pins = (portSck, portMosi, portMiso)
                 break
         self._spi = None
         self._pinIds = None
 
-    def write(self, buf):
-        return self._spi.write(buf)
+    def write(self, buf, start=0, end=None):
+        return self._spi.write(buf, start, end)
 
-    def readinto(self, buf):
-        return self._spi.readinto(buf)
+    def readinto(self, buf, start=0, end=None, write_value=0):
+        return self._spi.readinto(buf, start, end)
 
     def write_readinto(self, buffer_out, buffer_in,  out_start=0, out_end=None, in_start=0, in_end=None):
         return self._spi.write_readinto(buffer_out, buffer_in, out_start, out_end, in_start, in_end)