Toybrick

rk3399 spi2 增加gpio片选

luq67

新手上路

积分
38
楼主
发表于 2022-1-20 16:54:38    查看: 2863|回复: 0 | [复制链接]    打印 | 只看该作者
求助:
我的机器有用到多路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);
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

产品中心 购买渠道 开源社区 Wiki教程 资料下载 关于Toybrick


快速回复 返回顶部 返回列表