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

KTD-S0057-I
Page 36 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
uint8_t rx[ARRAY_SIZE(tx)] = {0, };
struct spi_ioc_transfer tr = {
.tx_buf = (unsigned long) tx,
.rx_buf = (unsigned long) rx,
.len = ARRAY_SIZE(tx),
.delay_usecs = delay,
.speed_hz = 0,
.bits_per_word = 0 };
ret = ioctl (fd, SPI_IOC_MESSAGE (1), &tr);
if (ret == 1)
pabort ("Cannot send SPI message");
for (ret = 0; ret < ARRAY_SIZE(tx); ret++)
{
if (! (ret % 6))
puts
("");
printf ("%.2X ", rx[ret]);
}
puts
("");
}
void print_usage (const char *prog)
{
printf ("Usage: %s [-DsbdHOC]\n", prog);
puts (" -D --device device to use (default /dev/spidev1.1)\n"
" -s --speed max speed (Hz)\n"
" -d --delay delay (usec)\n"
" -b --bpw bits per word \n"
" -H --cpha clock phase\n"
" -O --cpol clock polarity\n"
" -C --cs-high chip select active high\n");
exit
(1);
}
void parse_opts (int argc, char *argv[])
{
while
(1)
{
static const struct option lopts[] = {
{ "device", 1, 0, 'D' },
{ "speed", 1, 0, 's' },
{ "delay",
1, 0, 'd' },
{ "bpw",
1, 0, 'b' },
{ "cpha",
0, 0, 'H' },
{ "cpol",
0, 0, 'O' },
{ "cs-high", 0, 0, 'C' },
{ NULL,
0, 0, 0 }};
int
c;
c = getopt_long (argc, argv, "D:s:d:b:HOC", lopts, NULL);
if (c == -1) break;