]> Repositories - Adafruit_Blinka-hackapet.git/blobdiff - src/adafruit_blinka/microcontroller/ft232h/i2c.py
updates for pyftdi
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / ft232h / i2c.py
index 45b892186f14f074205ea2de359c7a9ccc38bec7..7f733c15f669001dd80ce743ec2ce76273d53d2c 100644 (file)
@@ -2,13 +2,16 @@ from adafruit_blinka.microcontroller.ft232h.pin import Pin
 
 class I2C:
 
-    def __init__(self):
+    def __init__(self, *, frequency=400000):
         # change GPIO controller to I2C
         from pyftdi.i2c import I2cController
         self._i2c = I2cController()
-        self._i2c.configure('ftdi:///1')
+        self._i2c.configure('ftdi:///1', frequency=frequency)
         Pin.ft232h_gpio = self._i2c.get_gpio()
 
+    def scan(self):
+        return [addr for addr in range(0x79) if self._i2c.poll(addr)]
+
     def writeto(self, address, buffer, *, start=0, end=None, stop=True):
         end = end if end else len(buffer)
         port = self._i2c.get_port(address)
@@ -29,6 +32,6 @@ class I2C:
         port = self._i2c.get_port(address)
         result = port.exchange(buffer_out[out_start:out_end],
                                in_end-in_start,
-                               relax=True).tobytes()
+                               relax=True)
         for i, b in enumerate(result):
             buffer_in[in_start+i] = b