Open Model Railroad Network (OpenMRN)
Loading...
Searching...
No Matches
TivaI2C Class Reference

Specialization of Serial driver for Tiva UART. More...

#include <TivaDev.hxx>

Inheritance diagram for TivaI2C:
I2C Node Device FileIO

Public Member Functions

 TivaI2C (const char *name, unsigned long base, uint32_t interrupt, bool fast_mode=false)
 Constructor.
 
 ~TivaI2C ()
 Destructor.
 
void interrupt_handler ()
 handle an interrupt.
 
- Public Member Functions inherited from Device
 Device (const char *name)
 Constructor.
 
virtual ~Device ()
 Destructor.
 

Private Member Functions

void enable () OVERRIDE
 function to enable device
 
void disable () OVERRIDE
 function to disable device
 
int transfer (struct i2c_msg *msg, bool stop) OVERRIDE
 Method to transmit/receive the data.
 
 TivaI2C ()
 Default constructor.
 
 DISALLOW_COPY_AND_ASSIGN (TivaI2C)
 

Private Attributes

unsigned long base
 base address of this device
 
unsigned long interrupt
 interrupt of this device
 
struct i2c_msg * msg_
 message for current transaction
 
bool stop_
 current transaction ends in a stop if true
 
int count_
 current count index within transaction
 
OSSem sem
 Semaphore to wakeup task level from ISR.
 

Additional Inherited Members

- Static Public Member Functions inherited from Device
static int open (struct _reent *reent, const char *path, int flags, int mode)
 Open a file or device.
 
static int close (struct _reent *reent, int fd)
 Close a file or device.
 
static int stat (struct _reent *reent, const char *path, struct stat *stat)
 Get the status information of a file or device.
 
static int select (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, long long timeout)
 POSIX select().
 
static void select_clear ()
 Clears the current thread's select bits.
 
- Static Public Member Functions inherited from FileIO
static ssize_t read (struct _reent *reent, int fd, void *buf, size_t count)
 Read from a file or device.
 
static ssize_t write (struct _reent *reent, int fd, const void *buf, size_t count)
 Write to a file or device.
 
static _off_t lseek (struct _reent *reent, int fd, _off_t offset, int whence)
 Change the offset index of a file or device.
 
static int fstat (struct _reent *reent, int fd, struct stat *stat)
 Get the status information of a file or device.
 
static int ioctl (int fd, unsigned long int key, unsigned long data)
 Request and ioctl transaction.
 
static int fcntl (int fd, int cmd, unsigned long data)
 Manipulate a file descriptor.
 
static bool is_device (int fd)
 Test if the file descriptor belongs to a device.
 
- Protected Member Functions inherited from I2C
 I2C (const char *name)
 Constructor.
 
 ~I2C ()
 Destructor.
 
- Protected Member Functions inherited from Node
 Node (const char *name)
 Constructor.
 
virtual ~Node ()
 Destructor.
 
int open (File *, const char *, int, int) OVERRIDE
 Open method.
 
int close (File *) OVERRIDE
 Close method.
 
virtual int fstat (File *file, struct stat *stat) override
 Get the status information of a file or device.
 
- Protected Member Functions inherited from FileIO
 FileIO (const char *name)
 Constructor.
 
virtual ~FileIO ()
 Destructor.
 
virtual off_t lseek (File *f, off_t offset, int whence)
 Seek method.
 
virtual int fcntl (File *file, int cmd, unsigned long data)
 Manipulate a file descriptor.
 
virtual bool select (File *file, int mode)
 Device select method.
 
- Static Protected Member Functions inherited from Device
static void select_insert (SelectInfo *info)
 Add client to list of clients needing woken.
 
static void select_wakeup (SelectInfo *info)
 Wakeup the list of clients needing woken.
 
static void select_wakeup_from_isr (SelectInfo *info, int *woken)
 Wakeup the list of clients needing woken.
 
- Static Protected Member Functions inherited from FileIO
static int fd_alloc (void)
 Allocate a free file descriptor.
 
static void fd_free (int fd)
 Free up a file descriptor.
 
static Filefile_lookup (int fd)
 Looks up a reference to a File corresponding to a given file descriptor.
 
static int fd_lookup (File *file)
 Looks up a file descriptor corresponding to a given File reference.
 
- Protected Attributes inherited from Node
OSMutex lock_
 protects internal structures.
 
mode_t mode_
 File open mode, such as O_NONBLOCK.
 
unsigned int references_
 number of open references
 
- Protected Attributes inherited from FileIO
const char * name
 device name
 
- Static Protected Attributes inherited from FileIO
static const unsigned int numOpenFiles = 20
 
static File files []
 File descriptor pool.
 
static OSMutex mutex
 mutual exclusion for fileio
 

Detailed Description

Specialization of Serial driver for Tiva UART.

Definition at line 289 of file TivaDev.hxx.

Constructor & Destructor Documentation

◆ TivaI2C()

TivaI2C::TivaI2C ( const char *  name,
unsigned long  base,
uint32_t  interrupt,
bool  fast_mode = false 
)

Constructor.

Parameters
namename of this device instance in the file system
basebase address of this device
interruptinterrupt number of this device
fast_modetrue for 400kHz, false for 100kHz operation

Definition at line 56 of file TivaI2C.cxx.

◆ ~TivaI2C()

TivaI2C::~TivaI2C ( )
inline

Destructor.

Definition at line 303 of file TivaDev.hxx.

Member Function Documentation

◆ disable()

void TivaI2C::disable ( )
inlineprivatevirtual

function to disable device

Implements Node.

Definition at line 314 of file TivaDev.hxx.

◆ enable()

void TivaI2C::enable ( )
inlineprivatevirtual

function to enable device

Implements Node.

Definition at line 313 of file TivaDev.hxx.

◆ interrupt_handler()

void TivaI2C::interrupt_handler ( )

handle an interrupt.

Common interrupt handler for all I2C devices.

Todo:
(Stuart Baker) this should be made private

Definition at line 177 of file TivaI2C.cxx.

◆ transfer()

int TivaI2C::transfer ( struct i2c_msg *  msg,
bool  stop 
)
privatevirtual

Method to transmit/receive the data.

Parameters
msgmessage to transact.
stopproduce a stop condition at the end of the transfer
Returns
bytes transfered upon success or -1 with errno set

Implements I2C.

Definition at line 118 of file TivaI2C.cxx.

Member Data Documentation

◆ base

unsigned long TivaI2C::base
private

base address of this device

Definition at line 323 of file TivaDev.hxx.

◆ count_

int TivaI2C::count_
private

current count index within transaction

Definition at line 327 of file TivaDev.hxx.

◆ interrupt

unsigned long TivaI2C::interrupt
private

interrupt of this device

Definition at line 324 of file TivaDev.hxx.

◆ msg_

struct i2c_msg* TivaI2C::msg_
private

message for current transaction

Definition at line 325 of file TivaDev.hxx.

◆ sem

OSSem TivaI2C::sem
private

Semaphore to wakeup task level from ISR.

Definition at line 330 of file TivaDev.hxx.

◆ stop_

bool TivaI2C::stop_
private

current transaction ends in a stop if true

Definition at line 326 of file TivaDev.hxx.


The documentation for this class was generated from the following files: