【BeagleBone Black Rev. C试用体验】+设备树驱动

本文分享了BeagleBone Black Rev. C的设备树驱动使用体验,特别强调GPIO地址从1开始,例如GPIO0_x对应gpio1。在配置引脚复用时,地址从0x800开始,如gpio1_12的偏移为0x30。
摘要由CSDN通过智能技术生成
感觉设备树写驱动是未来的潮流。。。下面我们来讲讲设备树驱动开发。。

设备树语法我们这就不说了,去下面链接自己参考吧:
http://www.cnblogs.com/xiaojiang1025/p/6131381.html


一、修改设备树:
设备树文件在arch/arm/boot/dts目录下am335x-boneblack.dts文件

先贴代码:
/* add by Sourcelink */
/ {
        model = "TI AM335x BeagleBoneBlack";
        compatible = "ti,am335x-bone", "ti,am33xx";

        cpus {
                cpu@0 {
                        cpu0-supply = <&dcdc2_reg>;
                };
        };
       
        /* add by Sourcelink */
        source_gpio {
                        compatible = "sourcelink_gpio";
                        pinctrl-names = "sourcelink_gpio";
                        pinctrl-0 = <&sourcelink_pin>;
                        source_gpios = <&gpio2 12 0>;
        };
};

&am33xx_pinmux {
        rstctl_pins: pinmux_rstctl_pins {
                pinctrl-single,pins = <
                        /* eMMC_RSTn */
                        0x50 0x17        /* gpmc_a4.gpio1_20, OUTPUT | MODE7 | PULLUP */
                >;
        };

        /* add by Sourcelink */
        sourcelink_pin: pinmux_source_pins {
                pinctrl-single,pins = <
                        0x30 0x7        /* gpmc_ad12.gpio1_12, OUTPUT | MODE7 */
                >;
        };       
};
修改的地方我都有标注。。。
compatible是用来匹配的。。。
pinctrl-names用来匹配pinctrl设置信息。。。
source_gpios用来获取io信息。。。

我们用的是gpio1_12,设置mode7,且为输出模式。。。

切记gpio的地址标号是从1开始的。。。gpio1对应的是GPIO0_x的地址,我就是这出了问题一直没有调出来。。。


引脚的复用都是从800h地址开始:

对应管脚从gpio0_0开始四个字节开始增加,所以gpio1_12偏移对应:4*12 = 48 = 0x30


二、总线驱动
platform总线驱动这里就不介绍了。我也讲不明白。感兴趣的可以去 了解,以前学习的时候都是自己写个device再写个driver然后匹配。
现在有设备树了devcie省去了,减少了很大的代码冗余。。。。

写驱动编译有错误不要紧,一条条出解决,查问题。这个驱动刚写好时,一编译刷刷的一排error下来,看到额眼睛都花了,但是一个个看过去还是能解决的。无非就是头文件没包含
语法有问题。。调用的变量类型有问题。。

下面贴个简单的框架:
#include <linux/module.h>
#include <linux/kernel.h>
#i
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值