RK3568-Linux-麒麟系统----陀螺仪驱动调试

RK3568-Linux-麒麟系统----陀螺仪驱动调试

1. 瑞星微开发板自带的陀螺仪型号MXC6655xa,硬件人员说我们的板子和开发板一样,因此检查设备树文件找到设备描述:

&i2c5 {
status = “okay”;
mxc6655xa: mxc6655xa@15 {
status = “okay”;
compatible = “gs_mxc6655xa”;
pinctrl-names = “default”;
pinctrl-0 = <&mxc6655xa_irq_gpio>;
reg = <0x15>;
irq-gpio = <&gpio3 RK_PC1 IRQ_TYPE_LEVEL_LOW>;
irq_enable = <1>;
poll_delay_ms = <30>;
type = <SENSOR_TYPE_ACCEL>;
power-off-in-suspend = <1>;
layout = <1>;
};
};
&pinctrl {

mxc6655xa {
	mxc6655xa_irq_gpio: mxc6655xa_irq_gpio {
		rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
	};
};

}
最主要是检查中断引脚 和i2c地址
陀螺仪硬件原理图
中断GPIO是3 C1引脚,i2c地址是0x15,因此设备树不用修改。

2. 检查驱动文件

因以前没有接触过陀螺仪,因此驱动在哪个路径也不知道,因此先查找驱动所在路径,因为有设备树的compatible属性,因此直接在驱动中查找。
find ./kernel/ -name “.” | xargs grep gs_mxc6655xa
查找结果显示驱动文件在如下目录:
./kernel/drivers/input/sensors/accel/mxc6655xa.c: .name = “gs_mxc6655xa”,
因些进入kernel/drivers/input/sensors/accel目录,
发现现在的kernel没有编译陀螺仪的驱动,因此要在kernel中添加陀螺仪的驱动
进放kernel目录,执行make ARCH=arm64 menuconfig
进放> Device Drivers > Input device support 选中
<> handle angle,accel,compass,gyroscope,lsensor psensor etc —>
进入再选中<
> g_sensor device support —> 并进入下层
选中<*> gsensor mxc6655xa
最后的目录是> Device Drivers > Input device support > handle angle,accel,compass,gyroscope,lsensor psensor etc > g_sensor device support
保存后退出

3. 保存配置到默认配置文件

保存退出后,配置会保存在临时.config中,因此想把这个修改保存到默认配置文件中,不用每次修改。
执行make savedefconfig,会保存到 defconfig文件,可以把这个文件作为默认配置文件,也可以检查下和以前的文件的变化,把添加到配置项添加到默认配置文件中,检查配置文件,增加的项如下:
CONFIG_SENSOR_DEVICE=y
CONFIG_GSENSOR_DEVICE=y
CONFIG_GS_MXC6655XA=y
把这三项添加到配置文件。

4。 重新编译kernel

./build.sh kernel
重新烧写boot.img后,查看打印信息
dmesg | grep gsensor
[ 2.308623] gsensor_mxc6655 5-0015: sensor_register_device: gs_mxc6655xa, id = 24
[ 2.309206] gsensor_mxc6655 5-0015: sensor_chip_init:gs_mxc6655xa:devid=0x5,ops=0x000000006bf54dcb
[ 2.311405] input: gsensor as /devices/platform/fe5e0000.i2c/i2c-5/5-0015/input/input1
[ 2.311813] gsensor_mxc6655 5-0015: sensor_irq_init:use irq=112
[ 2.311945] gsensor_mxc6655 5-0015: sensor_misc_device_register:miscdevice: mma8452_daemon
[ 2.311964] gsensor_mxc6655 5-0015: sensor_probe:initialized ok,sensor name:gs_mxc6655xa,type:2,id=24
[ 2.312808] gsensor_mxc6655 5-0015: sensor_report_value: x = -80, y = -48, z = 11200
驱动已经加载并得到一次三洲数据。

5. 测试陀螺仪功能

在应用层测试陀螺仪功能,这部分还在研究怎么在麒麟系统下测试陀螺仪功能。


版权声明:本文为qiuzw2003原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。