LINUX中SPI的一些小技巧

1、在kernei中,spi-cs在传输中会被一直拉低,这样会非常消耗总线资源,对于同一个bus,多个cs的设备来说非常不友好
处理办法:在dts中加上
spi-cs-high即可解决
code表现:
if (of_find_property(nc, “spi-cs-high”, NULL))
spi->mode |= SPI_CS_HIGH;
||
/
static void spi_set_cs(struct spi_device *spi, bool enable)
{
if (spi->mode & SPI_CS_HIGH)
enable = !enable;

    if (gpio_is_valid(spi->cs_gpio))
            gpio_set_value(spi->cs_gpio, !enable);
    else if (spi->master->set_cs)
            spi->master->set_cs(spi, !enable);

}

实际就是传输完成后将cs拉低

你可能感兴趣的:(LINUX篇,linux)