求助! 我的机器有用到多路spi通讯,其中spi2除cs0片选外还使用了2路gpio做cs1和cs2, 请问是否支持gpio做片选的方式? 看手册似乎一路spi最多只能支持2个片选(通过写SPI_SER bit1选择)? 我有尝试在dts中增加cs-gpios配置,通过gpio操作片选,但还是需要写ROCKCHIP_SPI_SER寄存器才能成功通信,而且同时访问同一总线上的2路spi有概率出现死锁 dts配置: cs-gpios = < 0 &gpio2 RK_PD3 GPIO_ACTIVE_LOW &gpio1 RK_PB2 GPIO_ACTIVE_LOW >; drivers/spi/spi.c 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); + if (spi->master->set_cs) + spi->master->set_cs(spi, !enable); } else if (spi->master->set_cs) spi->master->set_cs(spi, !enable); } |
欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) | Powered by Discuz! X3.1 |