RTEMS 7.0-rc1
Loading...
Searching...
No Matches
Data Structures | Macros | Functions
raspberrypi-i2c.c File Reference

I2C Driver. More...

#include <bsp/irq.h>
#include <bsp/raspberrypi-i2c.h>
#include <bsp/raspberrypi.h>
#include <bsp/rpi-gpio.h>
#include <dev/i2c/i2c.h>

Data Structures

struct  raspberrypi_i2c_bus
 

Macros

#define C_REG(bus)   BCM2835_REG( ( bus )->base_address + BCM2711_I2C_CONTROL )
 
#define C_I2CEN   ( 1 << 15 )
 
#define C_INTR   ( 1 << 10 )
 
#define C_INTT   ( 1 << 9 )
 
#define C_INTD   ( 1 << 8 )
 
#define C_ST   ( 1 << 7 )
 
#define C_CLEAR   ( 1 << 5 )
 
#define C_READ   ( 1 << 0 )
 
#define BSC_CORE_CLK_HZ   150000000
 
#define S_REG(bus)   BCM2835_REG( ( bus )->base_address + BCM2711_I2C_STATUS )
 
#define S_CLKT   ( 1 << 9 )
 
#define S_ERR   ( 1 << 8 )
 
#define S_RXF   ( 1 << 7 )
 
#define S_TXE   ( 1 << 6 )
 
#define S_RXD   ( 1 << 5 )
 
#define S_TXD   ( 1 << 4 )
 
#define S_RXR   ( 1 << 3 )
 
#define S_TXW   ( 1 << 2 )
 
#define S_DONE   ( 1 << 1 )
 
#define S_TA   ( 1 << 0 )
 
#define S_ERROR   ( S_CLKT | S_ERR | S_DONE )
 

Functions

rtems_status_code rpi_i2c_init (raspberrypi_bsc_masters device, uint32_t bus_clock)
 Initialize the I2C bus for a specified master.
 

Detailed Description

I2C Driver.

Function Documentation

◆ rpi_i2c_init()

rtems_status_code rpi_i2c_init ( raspberrypi_bsc_masters  device,
uint32_t  bus_clock 
)

Initialize the I2C bus for a specified master.

Parameters
deviceThe BSC master to initialize.
bus_clockThe desired bus clock frequency in Hz.
Returns
RTEMS status code indicating success or failure.