飞凌嵌入式ElfBoard ELF1板卡-开发板适配之I2C-光线传感器
其他
 
772 人阅读
|
0 人回复
|
2025-02-11 
 
 
 
 
| 
 | 
 
 
通过温度传感器驱动的添加,添加光线传感器驱动就简单多了,与温度传感器不同光线传感器挂载在I2C2总线上,并且被安排在扩展板上。 
硬件原理 
 
 
I2C2_SDA PAD NEME 为UART5_RX_DATA,I2C2_SCL PAD NAME为UART5_TX_DATA,中断引脚LIGHT_INT,PAD NAME 为LCD_DATA19。 
IOMUX配置 
设备树中已经存在i2c2的IOMUX配置 
pinctrl_i2c2: i2c2grp { 
       fsl,pins = < 
              MX6UL_PAD_UART5_TX_DATA__I2C2_SCL  0x4001b8b0 
              MX6UL_PAD_UART5_RX_DATA__I2C2_SDA  0x4001b8b0 
       >; 
}; 
设备节点添加 
在i2c2节点下添加子节点: 
bh1726@29 { 
       compatible = "elf,bh1726"; 
       reg = <0x29>; 
}; 
reg = <0x29>:表示该设备的I2c地址为0x29。 
添加后效果如下: 
 
添加BH1726驱动 
一、将ELF 1开发板资料包\02-Linux 源代码\02-1 驱动源码\03_bh1726\bh1726.c拷贝到内核源码的drivers/misc/路径下: 
 
二、将ELF 1开发板资料包\02-Linux 源代码\02-1 驱动源码\03_bh1726\bh1726.h拷贝到内核源码的include/linux路径下: 
 
三、修改Kconfig: 
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi drivers/misc/Kconfig 
添加以下内容: 
config BH1726 
        tristate "I2C device BH1726" 
        depends on I2C && SYSFS 
        help 
          If you say yes here,you get support for the bh1726 
添加后效果如下: 
 
四、修改Makefile: 
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ vi drivers/misc/Makefile 
添加以下内容: 
obj-$(CONFIG_BH1726)            += bh1726.o 
添加后效果如下: 
 
五、将bh1726驱动编译进内核: 
使用make menuconfig打开图形化配置界面: 
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ make menuconfig 
找到以下位置,我们可以在这里选择Y编译进内核,或者M编译成模块,或者N选择不编译。选择编译进内核: 
Device Drivers  
-> Misc devices 
 
六、替换配置文件 
通过make menuconfig修改的内容写入到了.config文件,当使用make imx6ull_elf1_defconfig配置内核源码时,.config文件会被覆盖,因此,需要替换原有的imx6ull_elf1_defconfig。 
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ cp .config arch/arm/configs/imx6ul\l_elf1_defconfig 
 
编译测试 
编译内核和设备树并拷贝到开发板: 
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ ./build.sh 
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/zImage   root\@172.16.0.175:/run/media/mmcblk1p1/ 
elf@ubuntu:~/work/linux-imx-imx_4.1.15_2.0.0_ga$ scp arch/arm/boot/dts/imx6ull-elf\1-emmc.dtb root@172.16.0.175:/run/media/mmcblk1p1/ 
进行sync操作后重启开发板: 
 
我们的驱动将光线传感器bh1726注册为input设备,在开发板命令行使用命令cat /proc/bus/input/devices查看输入设备: 
root@ELF1:~# cat /proc/bus/input/devices 
 
光线传感器设备被注册为event0。使用/usr/bin/elf_cmd_bh1726测试,在开发板命令行运行elf_cmd_bh1726,打印出ev_data.value当前光线强度: 
root@ELF1:~# elf1_cmd_bh1726 
 
 
 |   
 
  
  
  
 
 
 | 
| 
 | 
| 
 | 
| 
 | 
 |