一、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. 达摩院副院长金榕:中国 AI 将向何处?热潮有回落,但不应沮丧
  2. Ember.js 入门指南——定义模型
  3. 休眠后gpio状态_STM32休眠与唤醒
  4. Eclipse之JSON导包
  5. SAP MM 评估类型 评估类别
  6. maven、gradle依赖分析
  7. 运维开发学go还是python_运维工程师是要学python还是学go那?
  8. java菜鸟到cto 图_从菜鸟到入门,掌握 Log4j
  9. 【 FZU - 2214 】Knapsack problem(逆向0-1背包)
  10. button hover逐渐变色_两当水库界桩@产品长久不变色 - 两当安全防护
  11. c++二进制转十进制_进制转换:二进制、八进制、十进制、十六进制相互转换
  12. Rust创建项目的两种方式
  13. 解决YUM下Loaded plugins: fastestmirror Determining fastest mirrors 的错误问题
  14. 审查元素找不到创建的元素_面试被问:Selenium元素定位不到问题,如何回答?...
  15. atitit 部门日常工作流程体系 日常日程表 日常工作内容列表清单.docx
  16. php中文分词nlp,几种常见的PHP中文分词系统
  17. 南京邮电大学计算机专业学费多少,南京邮电大学学费多少
  18. win10忘记密码——无需启动盘修改密码
  19. 小武与剑指offer的恩怨情仇
  20. JS:关系运算符(>大于、>=大于等于、<小于、<=小于等于)

热门文章

  1. 个人简历网站模板源码
  2. C2P工业云进销存管理有什么优势?
  3. Ghostscript命令实践
  4. 三菱PLC与欧姆龙PLC通讯
  5. 雨木林风linux系统,雨林木风开源系统下载-ylmf.os(雨林木风开源系统)v4.0 正式版 - 极光下载站...
  6. 如何在软件UI设计中运用格式塔心理学5项法则?
  7. Python量化基础:时间序列的平稳性检验
  8. VS2010 Visual Assist X破解方法
  9. Mybatis拦截器 拦截所有更新操作
  10. Excel教程数据透视表系列案例二十二