NXP MCU 技术论坛
直播中

张波

7年用户 1358经验值
私信 关注
[问答]

如何将mma8452驱动程序添加到Linux设备树?

我目前正在尝试通过将 mma8452 驱动程序添加到 Linux 设备树来为我的 mma8451Q 加速度计实现它。
目前我正在创建一个设备树覆盖文件 (dtbo),其中包含添加到描述加速度计的设备树。它在引导时正确加载并正确拉入指定的 mma8452 驱动程序。但是,驱动程序在启动时在我的 dmesg 日志中返回以下错误:

[ 23.2352] mma8452: probe of 0-001c failed with error -121
有谁知道这意味着什么或如何解决它?也许覆盖不是执行此操作的正确方法,而是我应该创建一个 dtsi 文件或修改源 dts 文件?我可以使用位于 SA0 地址 0x1C 的 i2c-tools 包从控制台访问加速度计。
提供的驱动程序可以在这里找到
我的 dtbo 文件如下所示:

/*
* MIRA custom cape device tree overlay
* Supports MMA8451Q Accelerometer  
*/
/dts-v1/;
/plugin/;

#include

/ {
        /*
         * Helper to show loaded overlays under: /proc/device-tree/chosen/overlays/
         */
        fragment@0 {
                target-path="/";
                __overlay__ {

                        chosen {
                                overlays {
                                        MIRA_EXTENSIONS = __tiMESTAMP__;
                                };
                        };
                };
        };

        fragment@1 {
                target = <&i2c0>;

                __overlay__ {
                        status = "okay";
                        #address-cells = <1>;
                        #size-cells = <0>;
                        accel@1C {
                                compatible = "fsl,mma8451";
                                reg = <0x1C>;
                                interrupt-parent = <&gpio1>;
                                interrupts = <16 IRQ_TYPE_EDGE_RISING>;
                                interrupt-names = "INT1";
                        };
                };
        };
};
选择 target = <&i2c0> 只是因为它是另一个 dtsi 文件中的 i2c 节点。没有别的原因。可能是错误的。

                                

更多回帖

发帖
×
20
完善资料,
赚取积分