gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
由于板子没有lcd无法得知sd卡升级是否完成,因此使用LED显示.
Recovery中升级完成后控制GPIO输出高电平点亮LED.
系统自带GPIO控制驱动:
内核已经自带了通用GPIO驱动,可以直接在用户空间操作.
路径: /sys/class/gpio
root@rk3288:/sys/class/gpio # ls
export
gpiochip0
gpiochip120
gpiochip152
gpiochip184
gpiochip216
gpiochip24
gpiochip248
gpiochip280
gpiochip56
gpiochip88
unexport
比如我要操作GPIO8_A6作为高电平输出有效, 那么有以下问题:
1. 对应的gpio number是多少呢?
2. 如何设置成输出
3. 如何输出高电平
问题1:
可以通过/sys/kernel/debug/gpio查询信息:
root@rk3288:/sys/kernel/debug # cat gpio
//snip
GPIOs 184-215, platform/ff770000.pinctrl, gpio6:
gpio-193 (? ) in hi
gpio-194 (? ) in hi
GPIOs 216-247, platform/ff770000.pinctrl, gpio7:
gpio-218 (enable ) out hi
gpio-219 (lcd_en ) in hi
gpio-220 (lcd_cs ) in hi
gpio-221 (gslX680 wake pin ) out hi
gpio-222 (gslX680 irq pin ) out lo
gpio-223 (headset_gpio ) in hi
gpio-233 (? ) in hi
gpio-234 (? ) in hi
GPIOs 248-279, platform/ff770000.pinctrl, gpio8:
GPIOs 280-311, platform/ff770000.pinctrl, gpio15:
可以看到gpio8是以nubmer为248开始, 那么GPIO8_A6就是 248 + 6 = 254
接下来就可以导出gpio了
root@rk3288:/sys/class/gpio # echo 254 > export
root@rk3288:/sys/class/gpio # ls
export
gpio254
......
问题2
root@rk3288:/sys/class/gpio/gpio254 # echo out > direction
root@rk3288:/sys/class/gpio/gpio254 # cat direction
out
问题3:
root@rk3288:/sys/class/gpio/gpio254 # echo 1 > value
root@rk3288:/sys/class/gpio/gpio254 # cat value
1
解决方法:
init.rc
[kris@:~/rk3288/device/rockchip/common/recovery/etc]$ g df
diff --git a/recovery/etc/init.rc b/recovery/etc/init.rc
index efe2a5d..75d7554 100755
--- a/recovery/etc/init.rc
+++ b/recovery/etc/init.rc
@@ -85,6 +85,12 @@ on late-init
on property:sys.powerctl=*
powerctl ${sys.powerctl}
+#Kris, 170407, GPIO8_A6 -> gpio254, used to inform sd upgrade complete.
+on property:sdupgrade.complete=true
+ write /sys/class/gpio/export 254
+ write /sys/class/gpio/gpio254/direction out
+ write /sys/class/gpio/gpio254/value 1
+
service ueventd /sbin/ueventd
critical
seclabel u:r:ueventd:s0
recovery.cpp
[kris@:~/rk3288/bootable/recovery]$ g df
diff --git a/recovery.cpp b/recovery.cpp
index 8299672..a0edc15 100755
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -2285,6 +2285,10 @@ HANDLE_STATUS :
strcat(kernellogPath, "/kernel.txt");
save_kernel_log(kernellogPath);
#endif
+
+ //Kris, 170407, light led on after sd upgrade complete.
+ property_set("sdupgrade.complete", "true");
+
if (bSDMounted)
checkSDRemoved();
参考:
http://blog.csdn.net/cjsycyl/article/details/46310939
[RK3288][Android6.0] 调试笔记 --- Goodix GT9和GT9F区别【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/78341425 Platform: RK3288 OS: Android 6.0 Kernel ...
[RK3288][Android6.0] 调试笔记 --- 测试I2C设备正常传输方法【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/71515020 Platform: RockchipOS: Android 6.0Kernel ...
[RK3288][Android6.0] 调试笔记 --- 普通串口的添加 【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/54574073 标签: rk3288 串口添加 2017-01-16 14:52 1079 ...
[RK3288][Android6.0] 调试笔记 --- eMMC分区号和名字的对应【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/77318410 Platform: Rockchip OS: Android 6.0 Kern ...
[RK3288][Android6.0] 调试笔记 --- 替换系统签名【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/55100299 Platform: RK3288OS: Android 6.0Kernel: ...
[RK3288][Android6.0] 调试笔记 --- 软硬键盘同时使用【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/78748313 Platform: RK3288 OS: Android 6.0 Kernel ...
[RK3288][Android6.0] 调试笔记 --- 系统识别不同硬件版本方法【转】
本文转载自:http://m.blog.csdn.net/kris_fei/article/details/70226451 Platform: RockchipOS: Android 6.0Kern ...
[RK3288][Android6.0] 调试笔记 --- pmu(rk818)寄存器读写【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/76919134 Platform: Rockchip OS: Android 6.0 Kern ...
RK3288][Android6.0] 调试笔记 --- 关闭按键音后无法录音问题【转】
本文转载自:http://blog.csdn.net/kris_fei/article/details/70052413 Platform: ROCKCHIPOS: Android 6.0Kernel ...
随机推荐
[LeetCode] Closest Binary Search Tree Value II 最近的二分搜索树的值之二
Given a non-empty binary search tree and a target value, find k values in the BST that are closest t ...
C 标准库系列之ctype.h
ctype.h 主要提供了一些函数用以测试字符或字符处理的功能函数:包括字符判断检测.字符转换: 目前ASCII字符可分为以下一些类型,如:大写.小写.字母.数字.十六进制.空白字符.可打印字符.控制 ...
wp8.1 Study6: App的生命周期管理
一.概述 应用程序的生命周期详解可以参照Windows8.1开发中msdn文档http://msdn.microsoft.com/library/windows/apps/hh464925.aspx ...
转--android Toast大全(五种情形)建立属于你自己的Toast
Toast用于向用户显示一些帮助/提示.下面我做了5中效果,来说明Toast的强大,定义一个属于你自己的Toast. 1.默认效果 代码 Toast.makeText(getApplicationCo ...
Ubuntu系统下安装python2.7
第一步:下载python2.7相关版本源码(例如:Python-2.7.4.tgz) 第二步:安装 1) 解压 $tar zxvf Python-2.7.4.tar.tgz 2)进入文件夹: $cd ...
Java安全防御学习笔记V1.0
Java安全防御学习笔记V1.0http://www.docin.com/p-766808938.html
django学习——url的name
html中的地址可以用写死的,也可以用生成的,如:link
linux学习问题总结
目录 一.环境变量和普通变量的区别 二.rsyslog和logrotate会不会丢记录的问题 三.为什么有些文件夹大小不是4096的整数倍 四.reboot和shutdown等软链接实现原理 五.sy ...
如何用jQuery获得select的值
如何用jQuery获得select的值,在网上找了看了一下,下面将总结一下: 1.获取第一个option的值 $('#test option:first').val(); 2.最后一个o ...
qq互联php版本
https://zhidao.baidu.com/question/1495432442326804379.html qq互联php版本 http://www.jb51.net/article/104 ...
gpio驱动广播Android,[RK3288][Android6.0] 调试笔记 --- 通用GPIO驱动控制LED【转】相关推荐
- [RK3288][Android6.0] 调试笔记 --- 伪电池驱动添加
Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于电池部分是用户空间Service从另外一颗MCU获取,而Android需要显示电量, 所以按照 ...
- android 避免cpu降频,[RK3288][Android6.0] 调试笔记 --- CPU温度降频控制
rk3288平台关于温度调节cpu频率有个bug. 在rk3288.dtsi中,有: temp-limit-enable = <1>; target-temp = <80>; ...
- [RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 之前文章[RK3288][Android6.0] 调试笔记 - 伪电池驱动添加 阐述了如何添加一个 ...
- [RK3288][Android6.0] 调试笔记 --- touch无法获取坐标点
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 有网友遇到调试touch的时候能触发中断,但无法获取坐标点 具体可参考文章 [RK3288][An ...
- [RK3288][Android6.0] 调试笔记 --- AndroidTool低格无效问题
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 现象: 之前文章 [RK3288][Android6.0] 调试笔记 - AndroidTool两 ...
- [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi ch ...
- [RK3288][Android6.0] 调试笔记 --- 双屏显示内核Patch
Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 根据5.1的双屏显示patch,在android6.0上修改了下,因为没硬件环境,所以未经验证,仅供参 ...
- android 系统gpu 调试_[RK3288][Android6.0] 调试笔记 --- 读取当前DDR和GPU频率方法
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 ddr和gpu的clock都受dvfs模块管控, 所以只要执行: root@rk3288:/ # ...
- [RK3288][Android6.0] 调试笔记 --- 查看broadcast对应发送者进程
Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 发现开机的时候Muisc会收到broadcast被调用起来, ActivityManager: S ...
最新文章
- 英特尔90亿美元卖掉「起家业务」,SK海力士接盘
- LA3942 Remember the Word(Trie+DP)
- BOOST_PREDEF_TESTED_AT宏相关的测试程序
- Matlab中的结构体
- ODAC(V9.5.15) 学习笔记(十九)主键值自动生成
- Context 使用不当造成内存泄露
- cfree5.0中文版
- 36岁的it一线运维是不是废了_35以上IT人咋活?给你三个真实的案例
- swift 判断是否设置了代理
- 贵阳骑龙村:一根小香葱闯出大市场
- 隐藏的Word快捷键操作
- 硬件速攻-AS608指纹识别模块
- [FAQ11783][NW]MVNO忽略国内漫游(ignore national roaming)
- 如何实现超大文件上传?
- jsp页面链接下载文件
- 新媒体运营,微博运营活动技巧分享
- 电脑mac电脑,达龙云电脑mac版
- 第一个Android 程序的源代码: TxtReader文本阅读器
- 1404: 数根(函数专题)
- ubuntu c语言调用串口,使用C/C++和LibSerial在Ubuntu中对串口进行读写
热门文章
- wxWidgets:wxPlatformInfo类用法
- boost::ratio_sign相关的测试程序
- boost::multiprecision模块cpp_complex相关的测试程序
- boost::intrusive::pointer_traits用法的测试程序
- boost::core::typeinfo的用法实例
- ITK:计算网格的法线
- ITK:计算网格的平面参数化
- DCMTK:读取多个图像的示例应用程序
- VTK:Points之SignedDistance
- VTK:网格之TableBasedClipDataSetWithPolyData