43#ifndef __DEV_I2C_BUS_HH__
44#define __DEV_I2C_BUS_HH__
49#include "params/I2CBus.hh"
int currBit
Order of the bit of the current message that is being sent or received (0 - 7).
bool isClockSet(PacketPtr pkt) const
Clock set check.
std::map< uint8_t, I2CDevice * > devices
All the slave i2c devices that are connected to this bus.
void unserialize(CheckpointIn &cp) override
Unserialize an object.
Tick write(PacketPtr pkt) override
The default i2c bus driver used by the realview pbx board writes to this device one bit at a time.
I2CBus(const I2CBusParams &p)
4KB - see e.g.
uint8_t sda
I2C data wire (0, 1)
uint8_t i2cAddr
Key used to access a device in the slave devices map.
void updateSignals(PacketPtr pkt)
Update data (sda) and clock (scl) to match any transitions specified by pkt.
bool isStart(PacketPtr pkt) const
i2c start signal check
bool isEnd(PacketPtr pkt) const
i2c end signal check
void serialize(CheckpointOut &cp) const override
Serialize an object.
Tick read(PacketPtr pkt) override
Reads will always be to SB_CONTROLS.
static const int SB_CONTROLC
Clear control bits.
static const int SB_CONTROLS
Read [and Set] serial control bits: Bit [0] is SCL Bit [1] is SDA.
enum I2CState state
State used by I2CBus::write to determine what stage of an i2c transmission it is currently in.
uint8_t message
8-bit buffer used to send and receive messages bit by bit.
uint8_t scl
I2C clock wire (0, 1).
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
std::ostream CheckpointOut
uint64_t Tick
Tick count type.