一、I2C配置(硬件描述)

1.根据原理图,查找相关的i2c引脚对应的GPIO值,以GPIO10作为I2C_SDA,GPIO11作为I2C_SCL为例。

查找GPIO10与GPIO11对应的BLSP,以及检查GPIO10与GPIO11是否可以作为I2C来使用。根据文档,GPIO10对应BLSP3_1,GPIO11对应BLSP3_0。

GPIOFUNCTION

GPIO_6,GP1O_7BLSP2

GPIO_10,GOIO_11BLSP3

GPIO_14,GP1O_15BLSP4

GPIO_18,GP1O_19BLSP5

GPIO_22,GP1O_23BLSP6

GPIO_87,GP1O_88BLSP7

3.查找I2C部分BLSP3_0与BLSP3_1对应内容,包括其物理地址、reg size、中断号......

对应内容如下:

二、I2C配置(软件概述)

1.进入kernel/msm-3.18/arch/arm/boot/dts/qcom/路径下修改msm8937-pinctrl.dtsi文件

GPIO配置如下:

注意:1. MSM8917 的 pinctrl 文件为 msm8917-pinctrl.dtsi.

2. MSM8953 的 pinctrl 文件为 msm8953-pinctrl.dtsi

2.进入kernel/msm-3.18/arch/arm/boot/dts/qcom/路径下修改msm8937.dtsi文件

添加一个新的设备树节点

注意:1.红色方框中的内容需根据第三步内容进行修改

2. MSM8917 对应的文件为 msm8917.dtsi.

3. MSM8953 对应的文件为 msm8953.dtsi

3.进入kernel/msm-3.18/drivers/clk/msm路径下修改clock-gcc-8952.c文件

添加时钟节点如下图所示:

注意:1. MSM8917 对应的文件为 clock-gcc-8952.c

2. MSM8953 对应的文件为 clock-gcc-8953.c

4.编译kernel,在顶层目录下make bootimage –j12,在out目录下生成boot.img文件

路径为 LA.UM.5.6 /out/target/product/msm8937_64/boot.img

在DOS命令下,adb reboot bootloader

fastboot flash boot d:\\xxx\boot.img

若显示okay,执行 fastboot reboot。

注意:1.MSM8917 对应的路径为 LA.UM.5.6 /out/target/product/msm8937_32/boot.img

2.MSM8953 对应的路径为 LA.UM.5.6 /out/target/product/msm8953_64/boot.img

三、I2C BUS验证

配置好I2C后,我们需保证I2C BUS被注册

验证过程如下:

adb shell //-------> Get adb shell

cd /dev/

ls i2c* //--------> to list all the i2c buses

如果显示i2c-3,则表示I2C BUS已被注册

四、I2C调试检查

1、检查I2C配置的相关内容,是否存在错误,或者漏配。

2、确保SDA和SCL所配置的GPIO没有被其他设备所配置,否则硬件配置会出问题或者GPIO设置无效。

3、若I2C配置无误后,检查相关硬件问题

使用万用表测量I2C_SDA以及I2C_SCL的供电电压,如果与原理图中所示供电电压相差无几,则表示I2C供电电压没有问题。反之,则代表供电电压存在问题。

4、添加从设备

(1)、 通过设备树来注册一个从设备

如果I2C总线正常工作,我们就可以创建一个从设备驱动程序并注册到i2c总线上

我们使用st1663i触摸屏的驱动注册作为范例,引用文件:

kernel/drivers/input/touchscreen/st1663i/sitronix_i2c_touch.c

(2)、创建一个设备树节点

文件修改:

/kernel/arch/arm/boot/dts/qcom/msm8917-pmi8937-qrd-sku5.dtsi

添加一个新的设备树节点:

(3)、编译完成后,利用示波器测量I2C_SDA以及I2C_SCL波形

测试流程如下

adb root

adb remount

adb push i2c_test system/bin

adb shell

cd system/bin

chmod 777 i2c_test

./i2c_test /dev/i2c-3 0xaddr(从设备物理地址) 0(读) 0xaddr(寄存器地址)

如果I2C没有问题,所示I2C_SDA波形应为以下形式

I2C start > 0xE0 (write of 0x70) > 0x1 (reg offset ) > I2C stop > delay > I2C start > 0xE1 (read of 0x70) > > 8 bytes > I2C stop

MSM8937-MSM8953 I2C 配置调试指南相关推荐

  1. UART配置调试指南

    UART配置(硬件描述) 1.根据原理图,查找相关的i2c引脚对应的GPIO值,以GPIO16作为UART1_TX,GPIO17作为UART1_RX为例. 2.查找GPIO16与GPIO17对应的BL ...

  2. I2C配置及调试流程

    一.I2C配置 1.根据原理图,查找相关的i2c引脚对应的GPIO值,以GPIO10作为I2C_SDA,GPIO11作为I2C_SCL为例. 2.根据MSM8937 DEVICE SPECIFICAT ...

  3. linux内核调试指南

    Hunnad的专栏 * 条新通知 * 登录 * 注册 * 欢迎 * 退出 * 我的博客 * 配置 * 写文章 * 文章管理 * 博客首页 * * * * 空间 * 博客 * 好友 * 相册 * 留言 ...

  4. 高通msm8937/msm8953签名方法总结

    高通msm8937/msm8953签名方法总结 1.生成公私钥匙 在高通平台代码中已经内置了生成公私钥的脚本,我们只需要按照执行格式生成我们需要的公私钥即可.每一种类型的key都是成对生成的,.509 ...

  5. Qcom-高通OTP完全调试指南

    **Qcom-高通OTP完全调试指南** 1.OTP的基本概念(是什么) OTP(One Time Programmable)意思是一次性可编程,程序或者数据烧入[存储器]后,将不可再次更改和清除. ...

  6. Linux Kernel - Debug Guide (Linux内核调试指南 )

    linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...

  7. linux i2c调试命令,嵌入式Linux下I2C接口调试

    By Toradex秦海 1).简介 I2C是嵌入式设备最为常用的接口之一,常用于如下面这些应用场景,因此本文就基于嵌入式Linux演示在User Space进行I2C设备调试. - Digital ...

  8. QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03【EC20模组基础串口指令说明】

    QUECTEL上海移远4G通讯CAT4模组EC20CEFAG模块串口调试指南之03[EC20模组基础串口指令说明] 一.准备工作 二.硬件环境的搭建 三.基础AT指令的说明和测试 STM32F103学 ...

  9. 防火墙Hillstone StoneOS Debug(抓包)故障调试指南

    防火墙Hillstone StoneOS Debug故障调试指南 1.Debug抓包说明 2.常见Debug抓包流程 图片分享 1.Debug抓包说明 ⇒ Debug抓包前请务必查看设备CPU情况,如 ...

  10. 【RK3399 Android】天马MIPI屏幕TM080TDGP01,启动参数dts配置调试。

    前期调过天马的10寸屏,现在要更换天马的8寸屏,特地记录一下调试过程.本文章只记录屏幕参数调试过程,其他硬件调试过程不再详细描述,有需要可以参考其他文章.需要注意的硬件资源包括复位引脚,时钟引脚,信号 ...

最新文章

  1. [JAVAEE] Thymeleaf 基本语法: form相关标签
  2. nf_conntrack: table full, dropping packet 解决方案
  3. 将二叉查找树转化为链表的代码实现
  4. AAAI 2020 | NAS+目标检测:AI设计的目标检测模型长啥样?
  5. ssl certificate 验证
  6. java堆算法_用Java写算法之七:堆排序
  7. 如何利用Matlab完成数字1-9的语音识别
  8. async和await用法
  9. vb.net oracle数据库,vb.net 如何与oracle数据库连接
  10. CAS方式实现单点登录
  11. 图片编辑助手小程序_图片加文字_快速拼图_表情包制作
  12. 【读书笔记】你离考研成功就差这本书
  13. oracle最新版本18c的介绍,Oracle Database 18c已经发布及新特性介绍
  14. 护眼灯频闪是什么意思?如何消除led灯频闪
  15. Tivoli Storage Manager安装配置
  16. git仓库-客户端软件安装配置过程
  17. 【CTR预估】 xDeepFM模型
  18. 对话系统-“任务型”多轮对话(二):对话状态追踪(DST)【基于规则;基于模型】【输入:当前意图和槽值对+历史槽值对;输出:State(槽值对集合)或State Vector 】【为DP做数据准备】
  19. Android 解析Excel (xls格式)
  20. 安卓手机与Linux同步后,搜索文件内的内容

热门文章

  1. C#实现目录跳转(TreeView和SplitContainer)
  2. 华为android界面强刷救砖教程,华为P9刷机失败变砖开不了机了怎么办 华为P9救砖方法...
  3. kaggle泰坦尼克
  4. 泰坦尼克号的数据分析
  5. 计算机软件故障排除ppt,常见故障分析.ppt
  6. Java简单聊天室Socket服务器客户程序
  7. FLV格式视频转换成MP4格式教程
  8. 生命计算机在线,生命计算器
  9. unity Animator做简单的人物动画
  10. 热敏电阻测温度c语言编程,NTC热敏电阻测温度 单片机C和汇编源程序