
Device Tree
在itop4412开发板和迅为提供的内核源码下,进行设备树的学习,使用设备树进一步学习驱动,设备树 是为了将内核描述板级信息的冗余代码去掉,作为一个设备树文件进行描述,是描述硬件信息的一种数据结构!
zxy131072
嵌入式linux
展开
-
支持设备树的iTop4412的uboot编译参考脚本
#!/bin/bash# this is a demo for itop4412 u-boot-2017.11cd ../u-boot-2017.11/# not have file create fileif [ ! -f .config ]then make itop4412_defconfigfimake -j4cp u-boot.bin ../u-boot/echo "copy u-boot.bin done."cd spl/if [ ! -f itop4412-s原创 2020-09-11 09:03:21 · 287 阅读 · 0 评论 -
100ask_imx6ull使用pinctrl和gpio子系统设方式控制led
一、开发环境 1、100ask_imx6ull开发板 2、mint19.1开发环境 3、适用windows下的NFS进行挂载测试二、硬件原理LED的管脚为GPIO5_IO03。当GPIO5_IO03为高电平时,LED熄灭;当GPIO5_IO03为低电平时,LED被点亮。三、在arch/arm/boot/dts/100ask_imx6ull-14x14.dts的根节点下...原创 2020-03-19 08:26:00 · 1010 阅读 · 1 评论 -
itop4412环境下的支持设备树的Uboot信息
u-boot # priarch=armbaudrate=115200board=itop4412board_name=itop4412bootargs=root=/dev/mmcblk1p2 rw console=ttySAC2,115200 init=/linuxrc earlyprintkbootcmd=if mmc rescan; then echo SD/MMC found ...原创 2019-12-10 11:36:23 · 457 阅读 · 0 评论 -
012_pinctrl子系统框架分析
一、GPIO子系统系统结构GPIO子系统功能:引脚功能的配置(设置为GPIO,特殊功能,GPIO的方向,设置为中断等);实现软硬件的分离(分离出硬件差异,有厂商提供底层支持;软件分层,驱动只需要调用接口API即可操作GPIO);iommu内存管理(直接调用宏即可操作GPIO)。二、 pinctrl子系统结构pinctrl子系统和GPIO子系统的结构和功能类似,内部结构有所差异...原创 2019-10-24 20:49:05 · 336 阅读 · 0 评论 -
010_设备树LED驱动基础例程
设备树的引入是为了节省代码,平台文件中,对应pin的管理是很糟糕的,在设备树中添加了pinctrl子系统; pinctrl和原来的GPIO子系统同时存在。一、参考文档1、 GPIO文档linux的GPIO系统官方文档:Documentation/devicetree/bindings/gpio/gpio.txt参考的内容:Example of a node using GPIOs:...原创 2019-10-20 18:48:15 · 382 阅读 · 0 评论 -
009_设备树属性的获取-以LED为例
Linux引入设备树,把硬件分到设备树文件中,驱动中仍然需要硬件信息。所以必须将设备树中的硬件信息传到驱动中。一、设备树最重要的结构体设备树属性获取函数头文件:include/linux/of.h设备树中使用 device_node 结构体描述节点,of.h中的API需要device_node作为参数传入。struct device_node { const char...原创 2019-10-20 18:14:01 · 754 阅读 · 0 评论 -
008_以设备树的方式注册设备驱动-以led为例
使用设备树的方式,设备驱动进入probe和平台文件的方式类似,需要设备名称和驱动名称匹配。一、设备树文件修改 seedling:seedling_1 { compatible="seedling"; status="disabled"; };};&seedling { status = "okay";};先确定设备树中已经有了对应的compati...原创 2019-10-20 17:57:29 · 622 阅读 · 0 评论 -
007_设备树的节点测试和增加
一、 开发板启动之后,通过sys可以查询到设备树的所有信息在/proc/device-tree目录下有所有的node的信息;---这里有,表明有节点。在/sys/devices/platform/目录下有所有设备node的信息。–这里有表明设备注册了--有设备注册,最后驱动才能进入probe!二、设备树节点增加和测试1、增加leds_test_node,状态为disabl...原创 2019-10-20 17:14:55 · 1272 阅读 · 0 评论 -
006_NFS的功能的搭建
NFS功能其实已经默认配置上了。1、修改dts源码,需要烧写设备树镜像;2、驱动将以模块的方式编译,通过nfs来调试;mount -t nfs -o nolock 192.168.1.130:/home/mint/nfs /mnt由于目前我的网卡有些问题,所以没有截图,但是以前测试过,可以挂载,这样调试起来是十分方便的。3、如果没有局域网,可以通过u盘或者tf卡来测试 m...原创 2019-10-20 16:33:39 · 149 阅读 · 0 评论 -
005_usb3503A、网卡配置
一、 USB-hub -usb3503A配置如果没有usb3503A的驱动,直接先放弃做!一般不会出现这种情况,这个方案是三星的,肯定会提供的有了驱动,配置驱动,测试!–不行–找设备树的配置找到配置,可能需要修改gpio的管脚。二、网卡DM9621A配置usb的设备驱动,不需要平台文件,在设备树中也不需要在设备树文件中添加任何代码!在usb主控制器等驱动的情况下,只需要有驱动就成...原创 2019-10-20 16:30:24 · 929 阅读 · 0 评论 -
004_设备树dts的基本构造
一、 节点和根节点{} 框起来的结构,称为节点; /{} 在dts中最开头的,称为根节点。 节点的标准结构是xxx@yyy{…},xxx是节点的名字,yyy则不是必须的,其值为节点的地址(寄存器地址或其他地址)。节点可以包含属性和子节点。二、属性设备树学习的主要部分:设备树文件中属性的配置,驱动文件中调用设备树中的属性。compatible--类似设备名称,reg,l...原创 2019-10-20 16:26:29 · 462 阅读 · 0 评论 -
003_设备树相关文件的组成和介绍
一、设备树文件分为dts和bindingsbindings设备树用到的所有宏定义,都放到bindings目录下 /home/mint/itop/linux_4.14/Documentation/devicetree/bindingsdts分为dts和dtsi文件,dts是源文件,类似于.c文件,dtsi是头文件,类似于.h文件。另外还有使用文档在Documentation/device...原创 2019-10-20 16:22:31 · 1080 阅读 · 0 评论 -
002_支持设备树的系统的烧写
一、烧写在uboot环境下,输入下面的命令 fastboot 0在cmd命令行,用最新的fastboot烧写 fastboot.exe flash bootloader u-boot-iTOP-4412.bin fastboot.exe flash kernel uImage fastboot.exe flash dtb exynos4412-ito...原创 2019-10-20 16:19:59 · 391 阅读 · 0 评论 -
001_设备树环境搭建
一、环境搭建1、安装设备树编译器sudo apt-get install device-tree-compiler -y2、 uboot、内核源码和编译器源码 itop4412_kernel_4_14_2_bsp-20190225.tar.gz已经按照自己的习惯将该目录解压后,文件夹的名字为linux_4.14。编译器gcc-4.6.2-glibc-2.13-linaro-mu...原创 2019-10-20 16:16:05 · 440 阅读 · 4 评论