RTEMS 6.3
Loading...
Searching...
No Matches
i2c.c File Reference

Support for the I2C bus on the Raspberry Pi GPIO P1 header (model A/B) and GPIO J8 header on model B+. More...

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

Data Structures

struct  rpi_i2c_bus
 Object containing relevant information about an I2C bus. More...

Macros

#define TRANSFER_COUNT(buffer_size)
#define ADJUST_TRANSFER_SIZE(transfer_count, remaining_bytes)
#define I2C_POLLING(condition)

Functions

int rpi_i2c_register_bus (const char *bus_path, uint32_t bus_clock)
 Registers the Raspberry Pi BSC I2C bus with the Linux I2C User-Space API.
void rpi_i2c_init (void)
 Setups the Raspberry Pi GPIO header to activate the BSC I2C bus.

Detailed Description

Support for the I2C bus on the Raspberry Pi GPIO P1 header (model A/B) and GPIO J8 header on model B+.

Macro Definition Documentation

◆ ADJUST_TRANSFER_SIZE

#define ADJUST_TRANSFER_SIZE ( transfer_count,
remaining_bytes )
Value:
transfer_count > 1 ? 0xFFFF : (remaining_bytes & 0xFFFF)

◆ I2C_POLLING

#define I2C_POLLING ( condition)
Value:
while ( condition ) { \
; \
}

◆ TRANSFER_COUNT

#define TRANSFER_COUNT ( buffer_size)
Value:
(buffer_size + 0xFFFE) / 0xFFFF

Function Documentation

◆ rpi_i2c_register_bus()

int rpi_i2c_register_bus ( const char * bus_path,
uint32_t bus_clock )

Registers the Raspberry Pi BSC I2C bus with the Linux I2C User-Space API.

Parameters
[in]bus_pathPath to the bus device file.
[in]bus_clockBus clock in Hz.
Return values
0Bus registered successfully.
<0Could not register the bus. The return value is a negative errno code.