Platform: ROCKCHIP
Chip: RK3399
OS: Android7.1.2
Kernel: 4.4.126

调试步骤

1.增加驱动,Viewsonic_I2C_Driver.c

2.修改Kconfig与Makefile以及defconfig(程序所用的),扩展io芯片是PCA9534:放开 PCA953X的宏

--- a/kernel/arch/arm64/configs/rockchip_defconfig
+++ b/kernel/arch/arm64/configs/rockchip_defconfig
@@ -809,3 +809,6 @@ CONFIG_CRYPTO_GHASH_ARM64_CE=yCONFIG_CRYPTO_AES_ARM64_CE_CCM=yCONFIG_CRYPTO_AES_ARM64_CE_BLK=yCONFIG_CRYPTO_CRC32_ARM64=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_TOUCHSCREEN_VIEWSONIC=y
\ No newline at end of file
diff --git a/kernel/drivers/input/touchscreen/Kconfig b/kernel/drivers/input/touchscreen/Kconfig
old mode 100644
new mode 100755
index 4f569b3..3213bf2
--- a/kernel/drivers/input/touchscreen/Kconfig
+++ b/kernel/drivers/input/touchscreen/Kconfig
@@ -1160,4 +1160,11 @@ config TOUCHSCREEN_VTL_CT36Xconfig TOUCHSCREEN_GT1Xtristate "GT1X touchscreens support"+config TOUCHSCREEN_VIEWSONIC
+        bool "ViewSonic Electromagnetic Pen I2C Driver "
+        default n
+        help
+        ViewSonic Electromagnetic Pen I2C Driver Integration for Android
+
+endif
diff --git a/kernel/drivers/input/touchscreen/Makefile b/kernel/drivers/input/touchscreen/Makefile
old mode 100644
new mode 100755
index a56eba4..3c9e774
--- a/kernel/drivers/input/touchscreen/Makefile
+++ b/kernel/drivers/input/touchscreen/Makefile
@@ -99,5 +99,6 @@ obj-$(CONFIG_TOUCHSCREEN_TPS6507X)   += tps6507x-ts.oobj-$(CONFIG_TOUCHSCREEN_ZFORCE)  += zforce_ts.oobj-$(CONFIG_TOUCHSCREEN_COLIBRI_VF50)  += colibri-vf50-ts.oobj-$(CONFIG_TOUCHSCREEN_ROHM_BU21023)    += rohm_bu21023.o
+obj-$(CONFIG_TOUCHSCREEN_VIEWSONIC)   += Viewsonic_I2C_Driver.oobj-$(CONFIG_TOUCHSCREEN_VTL_CT36X)  += vtl_ts/

3.在板级dts上根据原理图找在哪个i2c下以及IRQ RST对应的管脚





1)多了一个电源管脚,故在源码Viewsonic_I2C_Driver.c里添加配置:看源码里并没有对电源脚进行操作,故需要把电源脚拉高


2)可以看出电磁屏以及PCA9534芯片都挂在i2c4上


3)RST脚与POWER脚是pca 9534扩展出来的IO脚;
PCA9534 i2c地址是linux代码里面的是实际的除以2故为0X20

4.故板级dts上添加如下

设备树里添加扩展IO的节点pca9534_gpio以及电磁屏的节点viewsonic

&i2c4{status = "okay";/*扩展IO配置*/pca9534_gpio:pca9534_gpio@20 {compatible = "nxp,pca9534";reg = <0x20>;#gpio-cells = <0x2>;pinctrl-names = "default";//interrupt-parent = <&gpio3>;//interrupts = <23 IRQ_TYPE_LEVEL_LOW>;status = "okay";};//viewsonic 电磁屏viewsonic:viewsonic@37{compatible = "viewsonic_i2c";reg = <0x37>;power_gpio = <&pca9534_gpio 2 GPIO_ACTIVE_HIGH>;irq_gpio = <&gpio1 23 IRQ_TYPE_LEVEL_LOW>;//gpio1_c7reset_gpio = <&pca9534_gpio 1 GPIO_ACTIVE_LOW>;//cfg_gpio = <&gpio7 10 IRQ_TYPE_LEVEL_LOW>;//<&touch_cfg_gpio>;//status = "okay";};
};

[RK3399]电磁屏:优派viewsonic与扩展IO(PCA9534)相关推荐

  1. 51单片机8255扩展c语言,51单片机8255A扩展IO口

    <51单片机8255A扩展IO口>由会员分享,可在线阅读,更多相关<51单片机8255A扩展IO口(23页珍藏版)>请在人人文库网上搜索. 1.一个芯片可扩展多个并行I/O口 ...

  2. 74HC595扩展IO芯片的使用以及例程(74HC595A和75HC595D的区别)

    这次来详细介绍74HC595这个扩展IO芯片的使用方法,虽然这个IC使用简单,但对于初学者理解还是较为困难,所以这次来拿例程解释助理解. 一.芯片介绍: 简单的理解74HC595芯片,是个扩展输出IO ...

  3. 电容屏和电磁屏 一:电阻式触摸屏 二:电容式触摸屏以及原理 三:电磁感应触摸屏 PDF电磁屏签名: 签名完成后,点坐转化文件: android 开发 实现网页跳转

    目录 电容屏和电磁屏 一:电阻式触摸屏 二:电容式触摸屏以及原理 三:电磁感应触摸屏

  4. 51单片机8255扩展c语言,参阅:基于51单片机的实时时钟的设计与开发8255扩展io口1V0.1...

    <基于51单片机的实时时钟的设计与开发(8255扩展io口) (1).doc>由会员分享,可免费在线阅读全文,更多与<基于51单片机的实时时钟的设计与开发(8255扩展io口) (1 ...

  5. 高通设备树架构电磁屏调试

    电磁触摸屏和电容触摸屏原理虽然不同,但对驱动来讲,没有什么区别,都是input设备. 一,移植 kernel/drivers/input/touchscreen/ 添加驱动文件,修改Makefile, ...

  6. [已解决]显示器分屏只能复制无法扩展

    前情提要: 主机箱上一个VGA接口,一个HDMI接口,分别接了两个显示器.其中VGA接口的显示器最高分辨率只有1600X1200,而该显示器实际最高分辨率有1920X1080. 一通操作后初步判断是显 ...

  7. Rk3399全接口板 高性能高扩展全能型介绍

    RK3399主控 RK3399是Rockchip产品线中性能最高的芯片,在应用中具有高性能和可扩展性.芯片的硬件规格在行业中处于领先地位. RK3399的CPU采用big.LITTLE核心架构,采用双 ...

  8. Mac双屏时程序坞(任务栏)跑到副屏的解决办法 - 扩展屏

    步骤 按下option+command+D,开启程序坞"自动隐藏",副屏程序坞消失 鼠标回到主屏,放在主屏正下方中间的边缘不要动,主屏能看到扩展坞出现了 按下option+comm ...

  9. DEEPIN/UOS双屏显示及分辨率设置(主屏、复制、扩展、副屏)

    背景 前段时间通过Ventoy(U盘系统启动盘引导制作工具)给笔记本装上了DEEPIN/UOS操作系统,体验起来是丝丝顺滑,除了软件有小部分不适应或者难crack之外,其它甚好.但是对于投屏,是真的不 ...

最新文章

  1. Chemistry.AI | 基于线性回归预测分子特性
  2. Altium Designer铺铜时抠铜
  3. CRMEBv3.0版本更新了什么?
  4. YOLOv4改进版重磅问世!Yolov4扩展版!Yolov4原班人马重磅推出Scaled-YOLOv4: Scaling Cross Stage Partial Network
  5. android学习笔记---52_发送状态栏通知
  6. 利用jquery的ajax获取后台返回的json数据为空
  7. 播放量子计算机的声音,首次实现:用声音纠缠了两个量子比特!
  8. 阿里云的背后故事(希望别被关了)
  9. selenium自动化看网课
  10. 怎么用计算机直接截图,电脑截图快捷键怎么使用,电脑怎么快捷键截图
  11. 宝塔面板+小鸟云服务器安全设置
  12. php主机卫士,Bypass 360主机卫士SQL注入防御(多姿势)
  13. JavaEE - 正则表达式、日期时间类、Math、Random、System、Runtime、大数值运算类
  14. QLExpress入门学习
  15. 苦涩又难理解的IO<1>
  16. react插件,树状图(可自由定义子节点结构,大小,样式)
  17. 电脑W ndoWs未能启动怎么办,电脑出现windows未能启动怎么办
  18. Python实现对电脑的全程监控
  19. 1.一条SQL语句如何执行
  20. k8s集群ClusterIP不能使用

热门文章

  1. 天馈线测试仪 如何选择
  2. 【JM】电脑检测不到U盘
  3. R语言使用逻辑回归分类算法
  4. 1.3一摞烙饼的问题
  5. linux系统zip压缩命令,linux zip 压缩命令
  6. 算法的时间复杂度(大O表示法)
  7. java实验(客户端) 2015106宋世超
  8. 绕过tp路由器管理密码_tplogin.cn默认密码是什么 tplogin.cn默认密码介绍【详解】...
  9. 文笔很差系列2 - 真实的世界
  10. npm ERR code EEXIST 报错 解决方案