Ktam3874/pitx software guide – Kontron KTAM3874-pITX User Manual

Page 53

Advertising
background image

KTD-S0057-I

Page 49 Linux® Programming Examples (DebianTM)


KTAM3874/pITX Software Guide


#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
#define I2C_SMBUS_WRITE

0

#define I2C_SMBUS_BYTE

1

#define I2C_SLAVE

0x0703

#define I2C_SMBUS

0x0720

#define I2C_SMBUS_BLOCK_MAX 32

#define EDIP128_ADDR

0x6F

static const char *device = "/dev/i2c-3";
static int fd;

union i2c_smbus_data
{
__u8

byte;

__u16

word;

__u8 block[I2C_SMBUS_BLOCK_MAX + 2];

};

struct i2c_smbus_ioctl_data
{
char

read_write;

__u8

command;

int

size;

union i2c_smbus_data *data;

};

static inline __s32 i2c_smbus_access (int file, char read_write, __u8 command,

int size, union i2c_smbus_data *data)

{

struct i2c_smbus_ioctl_data args;

args.read_write = read_write;

args.command = command;

args.size = size;

args.data = data;

return ioctl (file, I2C_SMBUS, &args);

}


static inline __s32 i2c_smbus_write_byte (int file, __u8 value)
{

return i2c_smbus_access (file, I2C_SMBUS_WRITE, value, I2C_SMBUS_BYTE, NULL);

}


static int transmit_i2c_test_string (void)
{
int

i;

__u8 tx[] = {

0x11,

/*

DC1

*/

0x05,

/* Data len */

0x48, 0x65, 0x6C, 0x6C, 0x6F,

/* Data = 'Hello' */

0x0A

/*

Checksum

*/

};

Advertising
This manual is related to the following products: