Spidev读/写音频编解码器寄存器

时间:2015-06-12 03:29:26

标签: linux

我正在使用TI816X自定义平台。我的平台上有一个新的基于SPI的音频编解码器(ROHM BU76312)设备。我找不到这个编解码器的Linux驱动程序。因此,我想编写用户空间SPI驱动程序来控制这个音频编解码器。

我在内核中创建了/dev/spidev1.2节点。但我不知道如何使用spidev读/写来控制这个音频编解码器。此照片列出了此音频编解码器的一些注册:https://dl.dropboxusercontent.com/u/27415803/photo/rohm_bu76312.jpg

如果我想写00H / 01H寄存器,那么读回来,我该怎么办?

这是我的测试程序,但我不知道如何编写寄存器读/写程序来控制基于spidev读/写功能的音频编解码器。

#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#define ARRAY_SIZE(array) sizeof(array)/sizeof(array[0])
static const char *spidev = "/dev/spidev1.2";
int main(int argc, char **argv) {
    int i,fd;
    fd = open(spidev, O_RDWR);
    #if 0
    if (write(fd, wr_buf, ARRAY_SIZE(wr_buf)) != ARRAY_SIZE(wr_buf))
        perror("Write Error");
    #endif
    close(fd);
    return 0;
}

顺便说一句,我应该将哪种模式用于这种基于SPI的音频编解码器? .mode = SPI_MODE_0或SPI_MODE_3?

struct spi_board_info __initdata ti816x_spi_slave_info[] = {
.modalias   = "spidev",
.irq        = -1,
.max_speed_hz   = 7500000,
.bus_num    = 1,
.chip_select    = 2,
//.mode = SPI_MODE_3, //??
//.mode = SPI_MODE_0, //??
}

0 个答案:

没有答案
相关问题