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

KTD-S0057-I
Page 37 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
switch
(c)
{
case 'D': device = optarg; break;
case 's': speed = atoi (optarg); break;
case 'd': delay = atoi (optarg); break;
case 'b': bits = atoi (optarg); break;
case 'H': mode |= SPI_CPHA; break;
case 'O': mode |= SPI_CPOL; break;
case 'C': mode |= SPI_CS_HIGH; break;
default: print_usage (argv[0]); break;
}
}
}
int main (int argc, char *argv[])
{
int ret = 0;
int
fd;
parse_opts (argc, argv);
fd = open (device, O_RDWR);
if (fd < 0)
pabort ("Cannot open device");
/* SPI mode */
ret = ioctl (fd, SPI_IOC_WR_MODE, &mode);
if (ret == -1)
pabort ("Cannot set SPI mode");
ret = ioctl (fd, SPI_IOC_RD_MODE, &mode);
if (ret == -1)
pabort ("Cannot get SPI mode");
/* Bits per word */
ret = ioctl (fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
if (ret == -1)
pabort ("Cannot set bits per word");
ret = ioctl (fd, SPI_IOC_RD_BITS_PER_WORD, &bits);
if (ret == -1)
pabort ("Cannot get bits per word");
/* Max speed in Hz */
ret = ioctl (fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed);
if (ret == -1)
pabort ("Cannot set max speed in Hz");
ret = ioctl (fd, SPI_IOC_RD_MAX_SPEED_HZ, &speed);
if (ret == -1)
pabort ("Cannot get max speed in Hz");
printf ("SPI mode: %d\n", mode);
printf ("Bits per word: %d\n", bits);
printf ("Max speed: %d Hz (%d kHz)\n", speed, speed/1000);