+# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
+#
+# SPDX-License-Identifier: MIT
+"""Chip Definition for MCP2221"""
+
+import os
+import time
+import atexit
+
+import hid
+
+
+class MCP2221:
+ """MCP2221 Device Class Definition"""
+
+ def __init__(self):
+ pass # This is a "fake" implementation
+
+ def close(self):
+ """Close the hid device. Does nothing if the device is not open."""
+ pass
+
+ def __del__(self):
+ # try to close the device before destroying the instance
+ pass
+
+
+ def _hid_xfer(self, report, response=True):
+ """Perform HID Transfer"""
+ return None
+
+ # ----------------------------------------------------------------
+ # MISC
+ # ----------------------------------------------------------------
+ def gp_get_mode(self, pin):
+ """Get Current Pin Mode"""
+ pass
+
+ def gp_set_mode(self, pin, mode):
+ """Set Current Pin Mode"""
+ pass
+
+ def _pretty_report(self, register):
+ pass
+
+ def _status_dump(self):
+ pass
+
+ def _sram_dump(self):
+ pass
+
+ def _reset(self):
+ pass
+
+ # ----------------------------------------------------------------
+ # GPIO
+ # ----------------------------------------------------------------
+ def gpio_set_direction(self, pin, mode):
+ """Set Current GPIO Pin Direction"""
+ pass
+
+ def gpio_set_pin(self, pin, value):
+ """Set Current GPIO Pin Value"""
+ pass
+
+ def gpio_get_pin(self, pin):
+ """Get Current GPIO Pin Value"""
+ pass
+
+
+ # ----------------------------------------------------------------
+ # I2C
+ # ----------------------------------------------------------------
+ def _i2c_status(self):
+ pass
+
+ def _i2c_state(self):
+ pass
+
+ def _i2c_cancel(self):
+ pass
+
+ # pylint: disable=too-many-arguments,too-many-branches
+ def _i2c_write(self, cmd, address, buffer, start=0, end=None):
+ pass
+
+ def _i2c_read(self, cmd, address, buffer, start=0, end=None):
+ pass
+
+ # pylint: enable=too-many-arguments
+ def _i2c_configure(self, baudrate=100000):
+ """Configure I2C"""
+ pass
+
+ def i2c_writeto(self, address, buffer, *, start=0, end=None):
+ """Write data from the buffer to an address"""
+ pass
+
+ def i2c_readfrom_into(self, address, buffer, *, start=0, end=None):
+ """Read data from an address and into the buffer"""
+ pass
+
+ def i2c_writeto_then_readfrom(
+ self,
+ address,
+ out_buffer,
+ in_buffer,
+ *,
+ out_start=0,
+ out_end=None,
+ in_start=0,
+ in_end=None,
+ ):
+ """Write data from buffer_out to an address and then
+ read data from an address and into buffer_in
+ """
+ pass
+
+ def i2c_scan(self, *, start=0, end=0x79):
+ """Perform an I2C Device Scan"""
+ pass
+
+
+ # ----------------------------------------------------------------
+ # ADC
+ # ----------------------------------------------------------------
+ def adc_configure(self, vref=0):
+ """Configure the Analog-to-Digital Converter"""
+ pass
+
+ def adc_read(self, pin):
+ """Read from the Analog-to-Digital Converter"""
+ pass
+
+ # ----------------------------------------------------------------
+ # DAC
+ # ----------------------------------------------------------------
+ def dac_configure(self, vref=0):
+ """Configure the Digital-to-Analog Converter"""
+ pass
+
+ # pylint: disable=unused-argument
+ def dac_write(self, pin, value):
+ """Write to the Digital-to-Analog Converter"""
+ pass
+
+ # pylint: enable=unused-argument
+
+
+mcp2221 = MCP2221()
\ No newline at end of file