11 static int fd_spi = -1;
17 int spi_open(char *dev)
19 fd_spi = open(dev, O_RDWR);
25 int spi_ioctl(int cmd, void *p)
27 return ioctl(fd_spi, cmd, p);
36 void spi_tx_len_set(int len)
38 spi_ioctl(CMD_TX_LEN, &len);
41 void spi_rx_get(char *p)
43 spi_ioctl(CMD_RX_GET, p);
47 void spi_tx_set(char *p)
49 spi_ioctl(CMD_TX_SET, p);
52 void spi_buf_clear(void)
54 spi_ioctl(CMD_BUF_CLEAR, NULL);
58 int spi_dnum_get(void)
61 spi_ioctl(CMD_DNUM_GET, &i);
65 int spi_rcvd_len_get(void)
68 spi_ioctl(CMD_RECEIVED_LEN_GET, &i);
72 void spi_cmd_send(char cmd_code, char *cmd_data, int data_len)
74 char cmd[SPI_CMD_LEN];
76 memset(cmd, 0, SPI_CMD_LEN);
78 cmd[SPI_CMD_OFS_HEAD] = SPI_HEAD_CHAR;
79 cmd[SPI_CMD_OFS_CMDCODE] = cmd_code;
82 if (data_len > (SPI_CMD_LEN - SPI_CMD_OFS_CMDDATA)) {
83 data_len = SPI_CMD_LEN - SPI_CMD_OFS_CMDDATA;
85 memcpy(&cmd[SPI_CMD_OFS_CMDDATA], cmd_data, data_len);
90 void spi_cmd_send_gain(int gain)
92 char cmd[SPI_CMD_LEN];
95 memset(cmd, 0, SPI_CMD_LEN);
97 for(i = 0; i < AD_CHNUM; i++)
99 spi_cmd_send(SPI_CMDCODE_GAIN, cmd, AD_CHNUM);