专栏中心

EEPW首页 > 专栏 > imx7d 通过imx7d-sdb.dts 添加 spi设备

imx7d 通过imx7d-sdb.dts 添加 spi设备

发布人:电子禅石 时间:2020-05-15 来源:工程师 发布文章
通过nxp yocto工程获得的kernel 对应的imx7d-sdb.dts并不包含spi设备(即 在/dev/下没有spidev0.0 和 spidev1.0),想要访问spi设备需要自己添加。废话不多说,下面说一下我自己添加的过程,本人亲测,有效。
linux kerel大概从2.6以后用dts把一些跟板级硬件配置相关的东东都放在了Device Tree Source中,一般放置在内核的arch/arm/boot/dts/目录。这样做的好处多多,有多少,自己百度。
我添加spi的过程如下:
1:打开 imx7d-sdb.dts
添加spi节点:
&ecspi1 {  
    fsl,spi-num-chipselects = <0>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_ecspi1 &pinctrl_ecspi1_cs>;
    cs-gpios = <&gpio4 19 0>;    
    status = "okay";
        spidev@1 {
        spi-max-frequency = <48000000>;
        reg = <0>;
        compatible = "rohm,dh2228fv";
    }; 
   
};
&ecspi2 {  
    fsl,spi-num-chipselects = <0>;
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_ecspi2 &pinctrl_ecspi2_cs>;
    cs-gpios = <&gpio4 23 0>;    
    status = "okay";
        spidev@2 {
        spi-max-frequency = <48000000>;
        reg = <0>;
        compatible = "rohm,dh2228fv";
    }; 
};
2:定义相关引脚
        pinctrl_ecspi1_cs: ecspi1_cs_grp {
            fsl,pins = <
                           MX7D_PAD_ECSPI1_SS0__GPIO4_IO19    0x80000000
            >;
        };
        pinctrl_ecspi1: ecspi1grp {
            fsl,pins = <
                MX7D_PAD_ECSPI1_SCLK__ECSPI1_SCLK    0x1
                MX7D_PAD_ECSPI1_MOSI__ECSPI1_MOSI    0x1
                MX7D_PAD_ECSPI1_MISO__ECSPI1_MISO    0x1
            >;
        };
                pinctrl_ecspi2_cs: ecspi2_cs_grp {
            fsl,pins = <
                           MX7D_PAD_ECSPI2_SS0__GPIO4_IO23     0x80000000
            >;
        };
        pinctrl_ecspi2: ecspi2grp {
            fsl,pins = <
                MX7D_PAD_ECSPI2_SCLK__ECSPI2_SCLK     0x1
                MX7D_PAD_ECSPI2_MOSI__ECSPI2_MOSI    0x1
                MX7D_PAD_ECSPI2_MISO__ECSPI2_MISO    0x1
            >;
        };
3:make;找到编译好的dtb(即imx7d-sdb.dtb),替换原来的dtb,注意名字要和uboot里面 fdt_file设置一样。
4:重启,ls /dev/spi*
spidev0.0  spidev1.0
大功告成,哈哈。
note:有些板子kernel会启动失败,我遇到的情况是spi引脚被别的设备占用了,在dts中注释掉被占用的引脚即可。
例如: uart6 ,udsh2
————————————————

原文链接:https://blog.csdn.net/geng115/article/details/85237409


专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

肖特光学滤光材料助力OPPO全新影像旗舰突破人眼级色彩还原

图形处理单元(GPU)、中央处理单元(CPU)、定制人工智能专用集成电路(ASIC)以及其他人工智能加速器,涵盖参与者分析、技术、趋势、供应链和预测

网络与存储 2025-05-06

用大数据方法协助研发下一代电池电解液

Arrow Lake Die Shot展示了Intel 基于chiplet的设计细节

EDA/PCB 2025-05-06

ASM宣布将启动美国本土生产以应对关税压力

EDA/PCB 2025-05-06

用一个FPGA实现多个工业以太网协议

视频 2009-09-24

是德科技与英特尔合作推进EMIB-T技术

中国半导体厂商因制程技术限制错失生成式AI红利

LLM真的具有商业价值吗?

智能计算 2025-05-06

仅用一颗葡萄供电的微处理器

视频 2009-10-16

Yue Dong 设计的ZigBee计量解决方案

视频 2009-08-27

七位半高精度DAQ如何设计?ADI工程师带你实测对比!

电源与新能源 2025-05-06

Pickering Interfaces全新高速PXI旋转变压器仿真模块精准赋能航空航天与汽车行业伺服系统测试

测试测量 2025-05-06

如何在数in2组成430W均流输出

视频 2010-07-19

TI DSP开发工具CCS上AET调试功能

视频 2009-10-16
更多 培训课堂
更多 焦点
更多 视频

技术专区