mpu6050设备树如何填写,cortex-A9架构

设备树

  1. 硬件电路图如下:
    图1 mpu6050外设电路图图2 SDA SCL

由上图所示硬件使用的是I2C通道5,
图2
2. 查找exnos4412的datasheet 29.6.1节,对应的基地址为0x138B0000。
图4
3. 由上图可知中断引脚复用的是GPX3_3。
4. mpu6050从设备地址为0x68。

根据图1 可知 AD0接地的 值为 0
参考mpu6050的datasheet,如下:
图5
可知从设备地址为0x68;

linux内核中三星已经为I2C控制器和设备节点的编写提供了说明手册:

\Documentation\devicetree\bindings\i2c\i2c-s3c2410.txt

该文档提供了一个具体范例,如下:

Example:

  i2c@13870000 {
    compatible = "samsung,s3c2440-i2c";
    reg = <0x13870000 0x100>;
    interrupts = <345>;
    samsung,i2c-sda-delay = <100>;
    samsung,i2c-max-bus-freq = <100000>;
    /* Samsung GPIO variant begins here */
    gpios = <&gpd1 2 0 /* SDA */
       &gpd1 3 0 /* SCL */>;
    /* Samsung GPIO variant ends here */
    /* Pinctrl variant begins here */
    pinctrl-0 = <&i2c3_bus>;
    pinctrl-names = "default";
    /* Pinctrl variant ends here */
    #address-cells = <1>;
    #size-cells = <0>;

    wm8994@1a {
      compatible = "wlf,wm8994";
      reg = <0x1a>;
    };
  };

注意:三星的exynos4412的i2c控制器驱动仍然沿用了s3c2410的驱动。

综上,最终I2C设备树节点编写如下:

 i2c@138B0000 {          基地址是 138B0000    
       samsung,i2c-sda-delay = <100>;
       samsung,i2c-max-bus-freq = <20000>;
       pinctrl-0 =<&i2c5_bus>;        通道5
       pinctrl-names = "default";
       status = "okay";
       mpu6050-3-asix@68 {
           compatible = "invensense,mpu6050";
           reg= <0x68>;           从设备地址
           interrupt-parent = <&gpx3>;   中断父节点
           interrupts= <3  2>;    中断index=3,中断触发方式:下降沿触发
       };
     };

其中 外面节点 i2c@138B0000{}是i2c控制器设备树信息,子节点;mpu6050-3-asix@68{}是从设备mpu6050的设备树节点信息。

更多Linux arm信息,请关注公众号 一口Linux

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一口Linux

众筹植发

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值