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【转】相关推荐

  1. [RK3288][Android6.0] 调试笔记 --- 伪电池驱动添加

    Platform: ROCKCHIP OS: Android 6.0 Kernel: 3.10.92 由于电池部分是用户空间Service从另外一颗MCU获取,而Android需要显示电量, 所以按照 ...

  2. android 避免cpu降频,[RK3288][Android6.0] 调试笔记 --- CPU温度降频控制

    rk3288平台关于温度调节cpu频率有个bug. 在rk3288.dtsi中,有: temp-limit-enable = <1>; target-temp = <80>; ...

  3. [RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 之前文章[RK3288][Android6.0] 调试笔记 - 伪电池驱动添加 阐述了如何添加一个 ...

  4. [RK3288][Android6.0] 调试笔记 --- touch无法获取坐标点

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 有网友遇到调试touch的时候能触发中断,但无法获取坐标点 具体可参考文章 [RK3288][An ...

  5. [RK3288][Android6.0] 调试笔记 --- AndroidTool低格无效问题

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 现象: 之前文章 [RK3288][Android6.0] 调试笔记 - AndroidTool两 ...

  6. [RK3288][Android6.0] 调试笔记 --- WiFi芯片AP6356S添加

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 背景: RK3288 Android6.0平台对AP6356S的支持不是很完善,直接修改wifi ch ...

  7. [RK3288][Android6.0] 调试笔记 --- 双屏显示内核Patch

    Platform: RK3288 OS: Android 6.0 Kernel: 3.10.92 根据5.1的双屏显示patch,在android6.0上修改了下,因为没硬件环境,所以未经验证,仅供参 ...

  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. [RK3288][Android6.0] 调试笔记 --- 查看broadcast对应发送者进程

    Platform: Rockchip OS: Android 6.0 Kernel: 3.10.92 发现开机的时候Muisc会收到broadcast被调用起来, ActivityManager: S ...

最新文章

  1. 英特尔90亿美元卖掉「起家业务」,SK海力士接盘
  2. LA3942 Remember the Word(Trie+DP)
  3. BOOST_PREDEF_TESTED_AT宏相关的测试程序
  4. Matlab中的结构体
  5. ODAC(V9.5.15) 学习笔记(十九)主键值自动生成
  6. Context 使用不当造成内存泄露
  7. cfree5.0中文版
  8. 36岁的it一线运维是不是废了_35以上IT人咋活?给你三个真实的案例
  9. swift 判断是否设置了代理
  10. 贵阳骑龙村:一根小香葱闯出大市场
  11. 隐藏的Word快捷键操作
  12. 硬件速攻-AS608指纹识别模块
  13. [FAQ11783][NW]MVNO忽略国内漫游(ignore national roaming)
  14. 如何实现超大文件上传?
  15. jsp页面链接下载文件
  16. 新媒体运营,微博运营活动技巧分享
  17. 电脑mac电脑,达龙云电脑mac版
  18. 第一个Android 程序的源代码: TxtReader文本阅读器
  19. 1404: 数根(函数专题)
  20. ubuntu c语言调用串口,使用C/C++和LibSerial在Ubuntu中对串口进行读写

热门文章

  1. wxWidgets:wxPlatformInfo类用法
  2. boost::ratio_sign相关的测试程序
  3. boost::multiprecision模块cpp_complex相关的测试程序
  4. boost::intrusive::pointer_traits用法的测试程序
  5. boost::core::typeinfo的用法实例
  6. ITK:计算网格的法线
  7. ITK:计算网格的平面参数化
  8. DCMTK:读取多个图像的示例应用程序
  9. VTK:Points之SignedDistance
  10. VTK:网格之TableBasedClipDataSetWithPolyData