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

KTD-S0057-I
Page 46 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
int open_i2c_dev (const int i2cbus, char *filename, const int quiet)
{
int
file;
sprintf (filename, "/dev/i2c-%d", i2cbus);
file = open (filename, O_RDWR);
if (file < 0 && !quiet)
{
if (errno == ENOENT)
fprintf (stderr, "Error: Could not open file `/dev/i2c-%d': %s\n", i2cbus, strerror (ENOENT));
else
{
fprintf (stderr, "Error: Could not open file `%s': %s\n", filename, strerror (errno));
if (errno == EACCES)
fprintf (stderr, "Run as root?\n");
}
}
return
file;
}
int main (int argc, char *argv[])
{
int i2cbus = 3;
/* Default I2C bus on J2105 */
int file, res;
char
filename[20];
unsigned long funcs;
int mode = MODE_READ;
/* Quick mode not supported */
int first = 0x03, last = 0x77;
int flags = 0;
/* Handle (optional) flags first */
while (1+flags < argc && argv[1+flags][0] == '-')
{
switch
(argv[1+flags][1])
{
case 'F': mode = MODE_FUNC; break;
default
: fprintf (stderr, "Error: Unsupported option \"%s\"!\n", argv[1+flags]);
help ();
return -1;
}
flags++;
}
if (argc >= flags + 2)
{
i2cbus = atoi (argv[flags+1]);
if ((i2cbus < 1) || (i2cbus > 4))
{
fprintf (stderr, "Error: No valid number for i2c-bus!\n");
return
-1;
}
}