diff options
author | Philip Balister <philip@opensdr.com> | 2010-09-09 10:02:10 -0400 |
---|---|---|
committer | Philip Balister <philip@opensdr.com> | 2010-09-09 10:02:10 -0400 |
commit | d2d5be27b09faee1481a763ce25e7b95460a46c9 (patch) | |
tree | f73e5c39fd7bc11e61e9327c07bc1ba8b5980de2 /host/utils/usrp-e-spi.c | |
parent | cd84e9dbfcc12584eba890a6618d38832e5d8dba (diff) | |
download | uhd-d2d5be27b09faee1481a763ce25e7b95460a46c9.tar.gz uhd-d2d5be27b09faee1481a763ce25e7b95460a46c9.tar.bz2 uhd-d2d5be27b09faee1481a763ce25e7b95460a46c9.zip |
Add clkgen-config, usrp-e-i2c and usrp-e-spi to the installed utils.
Diffstat (limited to 'host/utils/usrp-e-spi.c')
-rw-r--r-- | host/utils/usrp-e-spi.c | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/host/utils/usrp-e-spi.c b/host/utils/usrp-e-spi.c new file mode 100644 index 000000000..5203f56a8 --- /dev/null +++ b/host/utils/usrp-e-spi.c @@ -0,0 +1,54 @@ +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> +#include <sys/types.h> +#include <fcntl.h> +#include <sys/ioctl.h> + +#include <linux/usrp_e.h> + +// Usage: usrp_e_spi w|rb slave data + +int main(int argc, char *argv[]) +{ + int fp, slave, length, ret; + unsigned int data; + struct usrp_e_spi spi_dat; + + if (argc < 5) { + printf("Usage: usrp_e_spi w|rb slave transfer_length data\n"); + exit(-1); + } + + slave = atoi(argv[2]); + length = atoi(argv[3]); + data = atoll(argv[4]); + + printf("Data = %X\n", data); + + fp = open("/dev/usrp_e0", O_RDWR); + printf("fp = %d\n", fp); + if (fp < 0) { + perror("Open failed"); + return -1; + } + +// sleep(1); + + + spi_dat.slave = slave; + spi_dat.data = data; + spi_dat.length = length; + spi_dat.flags = UE_SPI_PUSH_FALL | UE_SPI_LATCH_RISE; + + if (*argv[1] == 'r') { + spi_dat.readback = 1; + ret = ioctl(fp, USRP_E_SPI, &spi_dat); + printf("Ioctl returns: %d, Data returned = %d\n", ret, spi_dat.data); + } else { + spi_dat.readback = 0; + ioctl(fp, USRP_E_SPI, &spi_dat); + } + + return 0; +} |