Other Parts Discussed in Thread: OMAP-L137, DA8XX
Hello, I am trying to send data via spidev in Linux with kernel 4.4.8.
I've added support of spi in menuconfig (support of userspace operations and support of TI spi devices).
Also, I changed board-da-830-evm.c file:
static struct spi_board_info da830evm_spi_info[] = {
[0] = {
.modalias = "m25p80",
.platform_data = &da830evm_spiflash_data,
.controller_data = &da830evm_spiflash_cfg,
.mode = SPI_MODE_0,
.max_speed_hz = 30000000,
.bus_num = 0,
.chip_select = 0,
},
[1] = {
.modalias = "spidev",
.mode = SPI_MODE_0 | SPI_NO_CS,
.controller_data = &da830evm_spi1_cfg,
.max_speed_hz = 100000,
.bus_num = 1,
.chip_select = 0,
},
};
...
ret = davinci_cfg_reg_list(da830_spi1_pins);
if (ret)
pr_warn("%s: spi1 setup failed: %d\n", __func__, ret);
if (ret)
pr_warn("%s: spi info registration failed: %d\n",
__func__, ret);
ret = da8xx_register_spi_bus(0, ARRAY_SIZE(da830evm_spi_info));
if (ret)
pr_warn("%s: spi 0 registration failed: %d\n", __func__, ret);
ret = da8xx_register_spi_bus(1, 0);//ARRAY_SIZE(da830evm_spi_info));
if (ret)
pr_warn("%s: spi 1 registration failed: %d\n", __func__, ret);
ret = spi_register_board_info(da830evm_spi_info,
ARRAY_SIZE(da830evm_spi_info));
And now I have spidev1.0 in /dev/ folder.
But I can't send data through it:
$ echo -ne test > /dev/spidev1.0 spidev spi1.0: SPI transfer failed: -22 spi_master spi1: failed to transfer one message from queue sh: write error: Invalid argument
And I can see, that the error happens in file spi.c in the command:
ret = master->transfer_one(master, msg->spi, xfer);
So, now I am trying to find transfer_one implementation for omap-l137, but I can't.
Can you help me with this problem?