Paparazzi UAS  v5.18.0_stable
Paparazzi is a free software Unmanned Aircraft System.
i2c_arch.c File Reference
#include "mcu_periph/i2c.h"
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/ioctl.h>
#include <linux/i2c.h>
#include <linux/i2c-dev.h>
#include <errno.h>
#include <pthread.h>
#include "rt_priority.h"
+ Include dependency graph for i2c_arch.c:

Go to the source code of this file.

Data Structures

struct  i2c_thread_t


#define I2C_THREAD_PRIO   10


static bool i2c_linux_idle (struct i2c_periph *p)
static bool i2c_linux_submit (struct i2c_periph *p, struct i2c_transaction *t)
static void i2c_linux_setbitrate (struct i2c_periph *p, int bitrate)
static void * i2c_thread (void *thread_data)
static void UNUSED i2c_arch_init (struct i2c_periph *p)
void i2c_event (void)
 i2c_event() function More...

Detailed Description

I2C functionality

Definition in file i2c_arch.c.

Data Structure Documentation

◆ i2c_thread_t

struct i2c_thread_t

Definition at line 54 of file i2c_arch.c.

Data Fields
pthread_cond_t condition
pthread_mutex_t mutex

Macro Definition Documentation


#define I2C_THREAD_PRIO   10

Definition at line 42 of file i2c_arch.c.

Function Documentation

◆ i2c_arch_init()

static void UNUSED i2c_arch_init ( struct i2c_periph p)

Definition at line 59 of file i2c_arch.c.

References i2c_thread(), and p.

+ Here is the call graph for this function:

◆ i2c_linux_idle()

static bool i2c_linux_idle ( struct i2c_periph p)

Definition at line 79 of file i2c_arch.c.

◆ i2c_linux_setbitrate()

static void i2c_linux_setbitrate ( struct i2c_periph p,
int  bitrate 

Definition at line 75 of file i2c_arch.c.

◆ i2c_linux_submit()

static bool i2c_linux_submit ( struct i2c_periph p,
struct i2c_transaction t 

◆ i2c_thread()

static void * i2c_thread ( void *  thread_data)

Definition at line 119 of file i2c_arch.c.

References i2c_msg::addr, i2c_msg::buf, i2c_thread_t::condition, fd, i2c_msg::flags, get_rt_prio(), I2C_M_RD, I2C_RDWR, I2C_SLAVE, I2C_THREAD_PRIO, I2C_TRANSACTION_QUEUE_LEN, I2CTransFailed, I2CTransRx, I2CTransSuccess, I2CTransTx, I2CTransTxRx, i2c_msg::len, mutex, and p.

Referenced by i2c_arch_init().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: