libpynq (release 5EWC0-2023 version 0.2.5 of 2023-10-08 10:51)
Loading...
Searching...
No Matches
IIC library

Enumerations

enum  iic_index_t { IIC0 = 0 , IIC1 = 1 , NUM_IICS = 2 }
 

Functions

void iic_init (const iic_index_t iic)
 
void iic_destroy (const iic_index_t iic)
 
bool iic_read_register (const iic_index_t iic, const uint8_t addr, const uint8_t reg, uint8_t *data, uint16_t length)
 
bool iic_write_register (const iic_index_t iic, const uint8_t addr, const uint8_t reg, uint8_t *data, uint16_t length)
 
bool iic_set_slave_mode (const iic_index_t iic, const uint8_t addr, uint32_t *register_map, const uint32_t rm_length)
 
void iic_slave_mode_handler (const iic_index_t iic)
 
void iic_reset (const iic_index_t iic)
 

Detailed Description

Functions to use the Inter-Integrated Circuit (IIC).

High-level functions to read/write to clients connected to the two integrated IIC modules.

Enumeration Type Documentation

◆ iic_index_t

Enum of IICs. Functions use a switch numbered from 0..NUM_IICS-1.

Enumerator
IIC0 
IIC1 
NUM_IICS 

Definition at line 42 of file iic.h.

Function Documentation

◆ iic_destroy()

void iic_destroy ( const iic_index_t  iic)

Close the shared memory handle for the specified IIC index.

Parameters
uartThe IIC index to remove from the shared memory space.
Warning
Fails with program exit if the IIC channel is outside valid range.

Definition at line 124 of file iic.c.

Here is the call graph for this function:

◆ iic_init()

void iic_init ( const iic_index_t  iic)

Initialize the IIC specified by the index with a shared memory handle and a buffer size of 4096 bytes.

Parameters
uartThe IIC index to initialize.
Warning
Fails with program exit if the IIC channel is outside valid range or when the shared memory system has not been instantiated.

Definition at line 108 of file iic.c.

Here is the call graph for this function:

◆ iic_read_register()

bool iic_read_register ( const iic_index_t  iic,
const uint8_t  addr,
const uint8_t  reg,
uint8_t *  data,
uint16_t  length 
)
Parameters
iicThe IIC index to initialize.
addrThe IIC address of the client to access.
regThe clients register address.
dataBuffer where the register content is stored. [out]
lengthThe amount of data to read.

Reads the content of the register into data.

Returns
0 if successful, 1 on error

Definition at line 327 of file iic.c.

Here is the call graph for this function:

◆ iic_reset()

void iic_reset ( const iic_index_t  iic)
Parameters
iicThe IIC index of the hardware to use. Return the IIC module into its default mode. This way it can be used as master.

Definition at line 314 of file iic.c.

◆ iic_set_slave_mode()

bool iic_set_slave_mode ( const iic_index_t  iic,
const uint8_t  addr,
uint32_t *  register_map,
const uint32_t  rm_length 
)

Definition at line 135 of file iic.c.

◆ iic_slave_mode_handler()

void iic_slave_mode_handler ( const iic_index_t  iic)
Parameters
iicThe IIC index of the hardware to use.

This handles requests that came in to the IIC unit when it is in slave mode.

Definition at line 302 of file iic.c.

◆ iic_write_register()

bool iic_write_register ( const iic_index_t  iic,
const uint8_t  addr,
const uint8_t  reg,
uint8_t *  data,
uint16_t  length 
)
Parameters
iicThe IIC index to initialize.
addrThe IIC address of the client to access.
regThe clients register address.
dataBuffer where new the register content is stored.
lengthThe amount of data to write.

Writes data to register.

Returns
0 if successful, 1 on error

Definition at line 344 of file iic.c.

Here is the call graph for this function: