imx7d 通过imx7d-sdb.dts 添加 spi设备_dts 中增加spi delay-程序员宅基地

技术标签: dts  linux imx spi dts  

通过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

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/geng115/article/details/85237409

智能推荐

elementUI el-input el-select输入框 设置高度和宽度_el-input 设置高度-程序员宅基地

文章浏览阅读6.2k次。//html模块<div class="relicMapSearch"> <el-input v-model="input1" placeholder="请输入景点名称" id="input1"/> <el-select v-model="value" placeholder="西安市" id="select"> <el-option v-for="item in options" :key="item.value" :label._el-input 设置高度

IPB帧,pts,dts_视频压缩中ipb帧概念-程序员宅基地

文章浏览阅读2.2k次。概念:简单地说,I帧是关键帧,属于帧内压缩。 P是向前搜索的意思。 B是双向搜索。他们都是基于I帧来压缩数据。I frame :帧内编码帧 又称intra picture,关键帧。I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,视频序列中的第一个帧始终都是I帧。经过适度地压缩,I帧可以作为参考点来实现快进、快退以_视频压缩中ipb帧概念

大二(下)C++ 第五章作业_设计一个产品类product,允许通过如下方式来创建产品对象。(1)通过指定产品名-程序员宅基地

文章浏览阅读2.9k次,点赞8次,收藏21次。很简单的代码,过了测试用例就没修改了。一.某公司财务部需要开发一个计算机雇员工资的程序,该公司有3类员工,工人的工资为每小时工资额(通过成员函数设定)乘以当月工作时数(通过成员函数设定)再加上工龄工资;销售员工资为每小时工资额(通过成员函数设定)乘以当月工作时数(通过成员函数设定)加上销售额提成再加上工龄工资,其中销售额提成等于该销售员当月售出商品金额(通过成员函数设定)的1%;管理人员工资为基..._设计一个产品类product,允许通过如下方式来创建产品对象。(1)通过指定产品名

使用python对url编码解码_python url编码-程序员宅基地

文章浏览阅读3.6w次。最近在抓取一些js代码产生的动态数据,需要模拟js请求获得所需用的数据,遇到对url进行编码和解码的问题,就把遇到的问题总结一下,有总结才有进步,才能使学到的知识更加清晰。对url进行编码和解码,python提供了很方便的接口进行调用。url中的query带有特殊字符(不是url的保留字)时需要进行编码。当url中带有汉字时,需要特殊的处理才能正确编码,以下都只针对这种情形,当然也适用于纯_python url编码

Python机器学习算法入门指南(全),字节跳动nodejs面试-程序员宅基地

文章浏览阅读954次,点赞29次,收藏10次。当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。意味着数据的质量决定了模型的最终效果,在实际的工业应用中,算法通常占了很小的一部分,大部分工程师的工作都是在找数据、提炼数据、分析数据。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。聚合的方式是指对字段聚合后求平均值、计数、最大值等。

题解 | #二维数组中的查找#C++二维数组暴力解法-程序员宅基地

文章浏览阅读813次,点赞11次,收藏20次。求助,西南片区,投了2012中硬的emc,12.27oc 转到上海,接了oc,说是两周左右意向,上周再打电话hr说是2012进度变缓慢了,offer审核还得等,说到华为的爱恨情仇?2024/1/13 面试-------------上来先自我介绍--------------我简历上写了三个项目:给研究所做的项目,改的 vscode 源码和开。(1)遇到下面的情况需要做字符串的展开:在输入的字符串中,出现了减号“-”,减号两侧同为小写字母或同为数字,且按照ASCII码的顺序,减号右边的字符严格大于左边。

随便推点

Android 应用开发项目中如何使用线程 Bezier 曲线?_android bezier(0.33,0,0.67,1.00)-程序员宅基地

文章浏览阅读117次。贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。主要结构:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。_android bezier(0.33,0,0.67,1.00)

浅谈新型高压开关配电室环境监测系统的设计-程序员宅基地

文章浏览阅读859次,点赞23次,收藏18次。系统采用西门子SIMATICS7-200系列可编程控制器(PLC)作为数据采集与控制的核心部件,昆仑通态触摸屏作为数据显示、存储部件,采用德国进口的红外吸收原理的SF6气体浓度传感器和日本进口的氧气含量传感器为主要部件,配上通讯、电源隔离、信号隔离、抗电磁干扰等电路,组成SF6浓度/氧气含量复合传感器,使传感器具有检测精度高、稳定性好、抗于扰能力强、维护方便等优点,采用RS485总线输出,使系统扩充更为容易,完全能够满足现场各项要求。温湿度变送器设置方法与SF6/02变送器的设置方法相同。

cocktail with pony-程序员宅基地

文章浏览阅读290次。题目大意在一维数轴上,狼的起始位置是x1x_1x1​,马的起始位置的x2x_2x2​ 。每轮狼移动v1v_1v1​步,小马移动v2v_2v2​ 步,每一步都可以向左或者向右移动。狼和马轮流先移动,第一轮狼先动,第二轮马先动。如果两个动物位置相同,那么马被抓住。移动不能超过数轴n的长度代码#include <iostream>using namespace std;int n,v1,v2,x1,x2;// 模拟int main(){ int t; cin >>_cocktail with pony

Glide缓存导致图片不更新_glide url不变,图片更新 缓存问题-程序员宅基地

文章浏览阅读6.6k次,点赞3次,收藏9次。Glide是一个非常好用的图片加载框架,它可以很好的缓存图片以提高图片加载效率。 但是在使用的时候,会出现一个问题:当服务器图片资源已经更新,但是URL地址不变时,Glide不会重新加载URL,而是从缓存中读取旧的图片资源。 下面给出两种解决方式: 1、仅使当前网络加载为服务器新数据——治标,一次性: 此方法关键在于指定Re..._glide url不变,图片更新 缓存问题

基于蚁群算法的机器人栅格地图路径规划_蚁群算法在机器人路径规划-程序员宅基地

文章浏览阅读1.2k次。请注意,上述代码中的一些函数需要根据具体的问题和地图定义进行实现,例如加载栅格地图数据、初始化蚂蚁位置、计算概率、选择下一个移动位置、更新信息素、找到最佳路径等。在本篇文章中,我们将介绍如何使用蚁群算法来解决机器人在栅格地图上的路径规划问题,并提供相应的 MATLAB 代码实现。在每个迭代步骤中,蚂蚁根据当前位置、信息素和启发函数计算下一步移动的概率,并根据概率选择下一步的移动位置。然后,更新路径和位置,并根据蚂蚁的路径更新信息素。在每次迭代结束后,我们找到最佳路径,并根据信息素蒸发率更新信息素。_蚁群算法在机器人路径规划

怎么查看svn服务器上的文件,如何查看svn端口号-程序员宅基地

文章浏览阅读5k次。欢迎来到阿八个人博客网站。本阿八个人博客网站提供最新的站长新闻,各种互联网资讯。喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术!URL链接:https://www.abboke.com/liaomei/2019/0724/94012.html如何查看svn端口号首先svn默认端口号是3690。具体操作步骤:1、首先需要安装 subversion 这个软件:sudo apt-get ..._svn端口是多少

推荐文章

热门文章

相关标签