]> Repositories - Adafruit_Blinka-hackapet.git/blob - src/adafruit_blinka/microcontroller/fake_mcp2221/i2c.py
Merge pull request #807 from brentru/force-mcp
[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     @staticmethod
17     def scan(address_list=None):
18         """Mocks an I2C scan.
19         If address_list is not provided, this function returns a
20         list of 3 randomly generated I2C addresses from 0x0 to 0x79.
21         For a stimulus-driven test: If address_list is provided,
22         this function returns the provided address_list.
23         """
24         if address_list is None:
25             # Generate a list of 3 randomly generated addresses from 0x0 to 0x79
26             address_list = []
27             for _ in range(3):
28                 address_list.append(random.randint(0x0, 0x79))
29             return address_list
30         return address_list