]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/mcp2221/i2c.py
lints
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / mcp2221 / i2c.py
1 """I2C Class for MCP2221"""
2 from .mcp2221 import mcp2221
3
4
5 class I2C:
6     """Custom I2C Class for MCP2221"""
7
8     def __init__(self, *, frequency=100000):
9         self._mcp2221 = mcp2221
10         self._mcp2221._i2c_configure(frequency)
11
12     def scan(self):
13         """Perform an I2C Device Scan"""
14         return self._mcp2221.i2c_scan()
15
16     # pylint: disable=unused-argument
17     def writeto(self, address, buffer, *, start=0, end=None, stop=True):
18         """Write data from the buffer to an address"""
19         self._mcp2221.i2c_writeto(address, buffer, start=start, end=end)
20
21     def readfrom_into(self, address, buffer, *, start=0, end=None, stop=True):
22         """Read data from an address and into the buffer"""
23         self._mcp2221.i2c_readfrom_into(address, buffer, start=start, end=end)
24
25     def writeto_then_readfrom(
26         self,
27         address,
28         buffer_out,
29         buffer_in,
30         *,
31         out_start=0,
32         out_end=None,
33         in_start=0,
34         in_end=None,
35         stop=False
36     ):
37         """Write data from buffer_out to an address and then
38         read data from an address and into buffer_in
39         """
40         self._mcp2221.i2c_writeto_then_readfrom(
41             address,
42             buffer_out,
43             buffer_in,
44             out_start=out_start,
45             out_end=out_end,
46             in_start=in_start,
47             in_end=in_end,
48         )
49
50     # pylint: enable=unused-argument