You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Coral SOM的Mendel Linux中启用ECSPI2(/dev/spidev1.0)

问题排查与修复方案

针对你在Google Coral SOM的Mendel Linux中启用ECSPI2后未出现/dev/spidev1.0的问题,以下是具体排查点和修复步骤:

1. 设备树spidev兼容属性错误

你当前配置的compatible = "rohm,dh2228fv"是特定传感器的兼容值,内核的spidev驱动不会匹配该值。需将其修改为spidev标准兼容属性:

spidev@0 {
    #address-cells = <1>;
    #size-cells = <1>;
    compatible = "linux,spidev";  // 替换原兼容值
    spi-max-frequency = <20000000>;
    reg = <0>;
    status = "okay";
};

2. 缺失ECSPI2片选引脚的PIN配置

你定义了pinctrl_ecspi2_cs但未在iomuxc节点中添加对应引脚的复用配置。你的cs-gpios使用的是GPIO5_IO13,需补充如下配置:

&iomuxc {
    imx8mq-phanbell {
        // 保留原有配置...
        pinctrl_ecspi2_cs: ecspi2_cs_grp {
            fsl,pins = <
                MX8MQ_IOMUXC_ECSPI2_SS0_GPIO5_IO13  0x82
            >;
        };
        pinctrl_ecspi2: ecspi2grp {
            fsl,pins = <
                MX8MQ_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK        0x82
                MX8MQ_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI        0x82
                MX8MQ_IOMUXC_ECSPI2_MISO_ECSPI2_MISO        0x82
            >;
        };
    };
};

3. 内核配置验证

确保编译内核时启用了必要的SPI驱动:

  • 启用spidev:CONFIG_SPI_SPIDEV=y(或=m,若编译为模块)
  • 启用FSL ECSPI驱动:CONFIG_SPI_FSL_ECSPI=y(或=m)
  • 确认ECSPI2未被内核配置禁用

4. 编译与刷入验证

  • 重新编译设备树和内核,确保修改后的fsl-imx8mq-phanbell.dts被编译为dtb文件
  • 刷入固件后,检查/boot/fsl-imx8mq-phanbell.dtb的修改时间是否与编译时间一致,确认刷入的是修改后的版本

5. 系统日志与状态检查

刷入后执行以下命令排查:

  • 查看ECSPI2初始化日志:dmesg | grep -i ecspi,确认输出中存在ecspi2相关的初始化成功信息
  • 查看SPI主设备节点:ls /sys/class/spi_master/,正常应出现spi1节点(ECSPI2对应SPI编号1,ECSPI1对应SPI0)
  • 查看spidev设备:ls /dev/spidev*,正常应出现/dev/spidev1.0

内容的提问来源于stack exchange,提问作者Joseph

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 23:27:45