简介:
描述调试光感IC stk3310的过程。
调试硬件平台:MT8163
调试软件平台:Android6.0

总修改文件:
project 为工程的名称

arch/arm64/boot/dts/project.dtsdevice/pskyed/project/ProjectConfig.mk
kernel-3.18/drivers/misc/mediatek/alsps/Kconfig
kernel-3.18/arch/arm64/configs/project_defconfigdevice/pskyed/project/ProjectConfig.mk
device/pskyed/project/overlay/frameworks/base/core/res/res/values/config.xml

一驱动程序的调试和分析
增加驱动文件
在kernel-3.18\drivers\misc\mediatek\alsps\ 目录下
增加
stk3x1x 的驱动文件,这个驱动文件可以从其他调试好的BSP中获取,也可以从供应商获取。

增加编译项
kernel-3.18\drivers\misc\mediatek\alsps\Kconfig 增加:
source “drivers/misc/mediatek/alsps/stk3x1x/Kconfig”
kernel-3.18\drivers\misc\mediatek\alsps\Makefile 增加:
obj-$(CONFIG_MTK_STK3X1X) += stk3x1x/
arch/arm64/configs/project_defconfig 增加编译宏:

  CONFIG_CUSTOM_KERNEL_ALSPS=y
CONFIG_MTK_STK3X1X=y 

这样驱动就会被编译进内核。

Dts配置I2C device
目录:
arch/arm64/boot/dts/project.dts
在&i2c2 { 中增加:

      alsps@48{compatible = "mediatek,alsps";reg = <0x48>;interrupt-parent = <&pio>;interrupts = <8 IRQ_TYPE_LEVEL_LOW>;int-gpio = <&pio 30 0>;status = "okay";
};  

在现有的Dts的架构下,device “alsps”会被创建。Driver中必须对应是“alsps”。
I2c地址为:0x48;
可以在设备上看到以下设备:/sys/bus/i2c/devices/3-0048
增加:

   cust_alsps@0 {compatible = "mediatek,stk3x1x";i2c_num = <2>;i2c_addr = <0x48 0x48 0x78 0x00>;polling_mode_ps = <1>;polling_mode_als = <1>;power_id = <0xffff>;power_vol = <0>;als_level = <5 10 25 50 100 150 200 400 1000 1500 2000 3000 5000 8000 10000>;als_value = <10 50 100 150 200 250 280 280 1600 1600 1600 6000 6000 9000 10240 10240>;ps_threshold_high = <120>;ps_threshold_low = <100>;is_batch_supported_ps = <0>;is_batch_supported_als = <0>;};

以上信息 stk3x1x的驱动会读取硬件配置信息。
二、HAL层的添加
2.1
修改目录:
device/pskyed/project/ProjectConfig.mk
CUSTOM_KERNEL_ALSPS = stk3x1x

此处的CUSTOM_KERNEL_ALSPS 只要有值即可。
可以查看
vendor/mediatek/proprietary/hardware/sensor/
下的代码,

if defined(CUSTOM_KERNEL_ALSPS) || defined(CUSTOM_KERNEL_ALS)

因此CUSTOM_KERNEL_ALSPS 只要不为空即加上了光感的中间层的函数。

三、应用层开关的添加
3.1 修改如下文件:
目录:
device/pskyed/project/overlay/frameworks/base/core/res/res/values/config.xml
修改如下:
true
改为 true之后在界面上就会有自动背光的选项。
此时点开自动背光,程序才会调用到驱动中的enable函数,从而开启背光的定时器线程。

调试小技巧:
遇到的问题是驱动probe成功了,节点也有了,但是不知道是否初始化OK了。
解决办法:1.adb连上机器,
切到目录:/sys/bus/platform/drivers/als_ps
查看 所以的寄存器:cat allreg
cat allreg
第一个寄存器是sensor的开关,默认自动感光是关闭的。
敲入命令: echo 00 03 > allreg
会打开感光sensor,
此时读取 als的值会发现变化,表示驱动已经正常工作。

MT8163 Android 6.0 调试光感IC(STK3310)总结相关推荐

  1. rk3288[android 6.0] 调试串口修改为普通串口

    背景 : rk3288 默认调试串口为uart2,  项目需要将uart2 修改为普通串口,理论知识不多说了, 本人也是接触android底层不久,理论知识没那么扎实,写出来也是复制别人的.主要记录一 ...

  2. QQ视频聊天,画面顺时针倒转90度问题(MT8163 Android 9.0平台)

    分析解决思路: QQ视频聊天,画面顺时针倒转90度,不管屏幕如何旋转,都是画面顺时针倒转90度,由此可见是关于重力感应传感器的加速度传感器(Sensor.TYPE_ACCELEROMETER)的问题, ...

  3. android 6.0 电池曲线,Android6.0 RK3399 电池系统(一)BQ25700 IC 驱动分析 · Younix’s Studio...

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? Platform: RK3399 OS: Android 6.0 Kernel: 4.4 Version: v2017. ...

  4. Android 5.0 Usb调试拦截分析及修改

    当我们调试安卓机器时,第一次插上usb线,会弹出一个授权的对话框,(前提是打开了usb调试功能)点击确认,才会允许调试. 如果我们想机器默认就可以调试该怎么做呢? 如果我们想动态拦截,需要用户输入帐号 ...

  5. gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示. Recovery中升级完成后控 ...

  6. android 系统源码调试 局部变量值_如何方便快速的整编Android 9.0系统源码?

    点击上方"刘望舒",选择"星标" 多点在看,就是真爱! 作者 :  刘望舒  |  来源 :刘望舒的博客地址:http://liuwangshu.cn/fram ...

  7. Android10.0 系统解析(02)——搭建Android源代码编译调试环境

    1.前言 Android的编译环境作为深入学习Android的基础,不可或缺,能够完整下载Android源代码并编译成功,对深入学习Android是非常关键和重要的一步.Android环境搭建比较繁琐 ...

  8. android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 ddr和gpu的clock都受dvfs模块管控, 所以只要执行: root@rk3288:/ # ...

  9. android7.0模拟器调试,android - 为什么在android 7.0及更高版本上出现模拟器错误? - 堆栈内存溢出...

    我正在开发将联系人保存在.vcf文件中的应用程序. 当我运行模拟器来测试应用程序时,我还会收到以下错误. 应用程序正在物理设备上运行. 但是android 7.0及更高版本的模拟器也给出了错误. (警 ...

最新文章

  1. 打桥位lisp_lisp函数
  2. BASISI系统中如何配置web service
  3. 手写体识别代码_机器人如何在复杂的环境下进行视觉识别?
  4. (转)周明:未来5-10年,自然语言处理将走向成熟
  5. 成为JavaGC专家Part II — 如何监控Java垃圾回收机制
  6. QQ语音老是连接服务器超时,手机QQ提示连接超时请检查网络设置解决办法
  7. 电脑显示windows无服务器,win10电脑提示windows似乎未正确加载_网站服务器运行维护...
  8. WIN7内部版本7600.此WINDOWS副本不是正版---解决方法
  9. 笔记本win10正在更新怎么关闭计算机,win10系统彻底永久关闭更新方法大全_联想戴尔笔记本win10关闭自动更新方法介绍...
  10. 国外android 邮件工具,对比测评国内外四个邮箱APP 邮箱大师表现最全能
  11. 一万字一篇文20分钟学会C语言和Python,十四年编程经验老鸟传授经验之道
  12. 大公司病了,这也太形象了吧!!!
  13. 有偏估计 无偏估计matlab,有偏估计和无偏估计
  14. 双 JK 触发器 74LS112 逻辑功能。真值表_时序逻辑电路设计(一):同步计数器...
  15. lightinthebox火车头数据采集器(20120812更新) 使用火车头接口技术一键批量采集 批量发布 批量去水印 接口技术
  16. RAID磁盘阵列(二)
  17. 计算机网什么是cih病毒,全球十大计算机病毒排名(7-9)
  18. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第21讲:PHP运行原理及编程规范
  19. C# for和foreach两种循环的效率问题
  20. iOS开发好不好学?

热门文章

  1. 9.1第三方测试的基本概念与测试过程
  2. AAAI 2017论文简析:利用可拍照移动设备感知空气质量---Crowdsensing Air Quality with Camera-enabled Mobile Devices
  3. Mac答疑「3」大学生买macbookpro合适吗
  4. 2121端口和21端口区别_耳机端口和扬声器端口之间有区别吗?
  5. python爬取百度贴吧指定内容
  6. 为什么等价无穷小不能在加减法中使用
  7. 协同办公软件(支持英文版、简体版、繁体版)
  8. 【Leetcode】1597. Build Binary Expression Tree From Infix Expression
  9. 一些大中型通用计算机的运算器既能进行,行政鉴定主要解决的是:A. 问题是否属于医疗事故的问题和赔偿调解问题B. 给双方当事人一个说法...
  10. 抖音 快手 视频号算法机制对比