Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
repo and version meta vars
  • Loading branch information
FoamyGuy committed Sep 25, 2025
commit 4532b05f6bfc71cc9562f19222feb39ef1ab0287
33 changes: 28 additions & 5 deletions adafruit_register/register_accessor.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
* Adaptation by Tim Cocks
"""

__version__ = "0.0.0+auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Register.git"


class SPIRegisterAccessor:
def __init__(self, spi_device):
Expand Down Expand Up @@ -70,11 +73,31 @@ def write_register(self, buffer, value, lsb_first, bit_mask, lowest_bit, byte=No


class I2CRegisterAccessor:
def __init__(self, bus):
def __init__(self, i2c_device):
self.i2c_device = i2c_device
pass

def read_register(self, address):
pass
def read_register(self, buffer):
with self.i2c_device as i2c:
i2c.write_then_readinto(buffer, buffer, out_end=1, in_start=1)

def write_register(self, address, value):
pass
def write_register(self, buffer, value, lsb_first, bit_mask, lowest_bit, byte=None):

value <<= lowest_bit # shift the value over to the right spot
with self.i2c_device as i2c:
i2c.write_then_readinto(buffer, buffer, out_end=1, in_start=1)

reg = 0
order = range(len(buffer) - 1, 0, -1)
if not lsb_first:
order = range(1, len(buffer))
for i in order:
reg = (reg << 8) | buffer[i]
# print("old reg: ", hex(reg))
reg &= ~bit_mask # mask off the bits we're about to change
reg |= value # then or in our new value
# print("new reg: ", hex(reg))
for i in reversed(order):
buffer[i] = reg & 0xFF
reg >>= 8
i2c.write(buffer)
3 changes: 3 additions & 0 deletions adafruit_register/register_bit.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@

"""

__version__ = "0.0.0+auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Register.git"


class RWBit:
"""
Expand Down
3 changes: 2 additions & 1 deletion adafruit_register/register_bits.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@

"""

import time
__version__ = "0.0.0+auto.0"
__repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_Register.git"


class RWBits:
Expand Down
Loading