【发布时间】:2015-07-02 00:33:49
【问题描述】:
我的平台: Beagle Bone Black,Ubuntu,内核:3.14.29-ti-r46
传感器: MPR121,连接到 Beagle 的 i2c-2
我想让触摸传感器 MPR121(飞思卡尔触摸键芯片)在我的 Beagle Bone Black 上工作。内核驱动程序在那里准备就绪。但它需要与设备树一起使用。
首先,我为 MPR121 制作了一个设备树 dts 文件,如下所示:
tomxue@ubuntu:~/Tom/Source_Code/BBB/Ubuntu/ti-linux-kernel-dev/KERNEL/arch/arm/boot/dts$ cat am335x-bone-i2c2-mpr121.dts
/*
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;
#include "am33xx.dtsi"
#include "am335x-bone-common.dtsi"
#include "am335x-bone-common-pinmux.dtsi"
/ {
model = "TI AM335x BeagleBone Black";
compatible = "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
};
&ocp {
/* i2c2 */
P9_19_pinmux {
mode = "i2c";
};
P9_20_pinmux {
mode = "i2c";
};
};
&i2c2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <>; /* pinctrl-0 = <&i2c2_pins>; */
clock-frequency = <100000>;
touchkey: mpr121@5a {
compatible = "fsl,mpr121";
reg = <0x5a>;
};
};
#include "am335x-bone-i2c2-cape-eeprom.dtsi"
dts目录下的Makefile如下:
dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
...
am335x-base0033.dtb \
am335x-bone-i2c2-mpr121.dtb \
am3517-craneboard.dtb \
然后我将内核与设备树文件一起重新编译。并使用官方脚本将内核映像、模块和设备树刷入我的 Beagle Bone Black。
重启 Beagle 后,我检查了我的新内核版本:
root@arm:/dev/input# uname -a
Linux arm 3.14.29-ti-r46 #2 SMP PREEMPT Tue Apr 21 14:30:14 CST 2015 armv7l armv7l armv7l GNU/Linux
然后insmod模块:
root@arm:~# insmod mpr121_touchkey.ko
dmesg 与 mpr121 无关。 然后我检查了 i2c-2,传感器确实连接到 Beagle 的 i2c-2 在 0x5a 地址(与设备树设置相同):
root@arm:~# i2cdetect -y -r 2
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- UU UU UU UU -- -- 5a -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
最后,我检查了输入设备是这样的:
root@arm:/dev/input# ls
mice
与传感器无关! 我想念什么?如何使传感器内核驱动程序工作? 谢谢!
【问题讨论】:
-
嗨。我知道你的问题是大约一年前的问题,但我的友好臂有问题。你能看看这个帖子吗:stackoverflow.com/questions/43221725/…