]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/fake_mcp2221/i2c.py
pylint
[Adafruit_Blinka-hackapet.git] / src / adafruit_blinka / microcontroller / fake_mcp2221 / i2c.py
1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
2 #
3 # SPDX-License-Identifier: MIT
4 """I2C Class for MCP2221"""
5 import random
6 from .fake_mcp2221 import mcp2221
7
8
9 class I2C:
10     """Custom I2C Class for MCP2221"""
11
12     def __init__(self, *, frequency=100000):
13         self._mcp2221 = mcp2221
14         self._freq = frequency
15
16     def scan(self, address_list=None):
17         """Mocks an I2C scan.
18         If address_list is not provided, this function returns a
19         list of 3 randomly generated I2C addresses from 0x0 to 0x79.
20         For a stimulus-driven test: If address_list is provided,
21         this function returns the provided address_list.
22         """
23         if address_list is None:
24             # Generate a list of 3 randomly generated addresses from 0x0 to 0x79
25             address_list = []
26             for _ in range(3):
27                 address_list.append(random.randint(0x0, 0x79))
28             return address_list
29         return address_list