huckleberry-0.9.1.0: cbits/hs_spi.c
#include "hs_spi.h"
#include <sys/ioctl.h>
#include <linux/types.h>
#include <linux/spi/spidev.h>
unsigned char spi_mode_0() {
return SPI_MODE_0;
}
unsigned char spi_mode_1() {
return SPI_MODE_1;
}
unsigned char spi_mode_2() {
return SPI_MODE_2;
}
unsigned char spi_mode_3() {
return SPI_MODE_3;
}
int spi_transfer_message_1(int fd, void* buff, __u32 buff_len, __u32 speed, __u8 bits) {
struct spi_ioc_transfer spi;
spi.tx_buf = (__u64) buff;
spi.rx_buf = (__u64) buff;
spi.len = buff_len;
spi.speed_hz = speed;
spi.bits_per_word = bits;
spi.delay_usecs = 0;
spi.cs_change = 0;
return ioctl(fd,SPI_IOC_MESSAGE(1),&spi);
}
int spi_set_rd_mode(int fd, __u8 mode) {
return ioctl(fd,SPI_IOC_RD_MODE,&mode);
}
int spi_set_wr_mode(int fd, __u8 mode) {
return ioctl(fd,SPI_IOC_WR_MODE,&mode);
}
int spi_set_rd_lbs_first(int fd, __u8 lbs) {
return ioctl(fd,SPI_IOC_RD_LSB_FIRST,&lbs);
}
int spi_set_wr_lbs_first(int fd, __u8 lbs) {
return ioctl(fd,SPI_IOC_WR_LSB_FIRST,&lbs);
}
int spi_set_rd_bits_per_word(int fd, __u8 bits) {
return ioctl(fd,SPI_IOC_RD_BITS_PER_WORD,&bits);
}
int spi_set_wr_bits_per_word(int fd, __u8 bits) {
return ioctl(fd,SPI_IOC_WR_BITS_PER_WORD,&bits);
}
int spi_set_rd_max_speed_hz(int fd, __u32 speed) {
return ioctl(fd,SPI_IOC_RD_MAX_SPEED_HZ,&speed);
}
int spi_set_wr_max_speed_hz(int fd, __u32 speed) {
return ioctl(fd,SPI_IOC_WR_MAX_SPEED_HZ,&speed);
}