RK平台,RK3399,RK3288,IO控制。
4867
艾编程的鲁小班 2019-12-05 17:50:07

一,硬件IO复用配置

配置复用
GPIO3 :FF790~ FF788;
GPIO3_B7: GPIO
io -4 -r 0xff79e014
GPIO3 FF79e054
iomux
FF79e014

RK3399的iO控制
echo 227 > /sys/class/gpio/export
GPIO7A3: 7X32 +3 = 227
gpio0B5 : 0X32+13 = 13

gpio3_B7: 3X32 + 15 = 111
echo 111 > /sys/class/gpio/export
配置GRF
io -4 -r 0xff78800
[root@rk3399:/]# io -4 -r 0xff788000
ff788000: 00008000
[root@rk3399:/]#
GRF基地址为:FF77_0000
GRF_GPIO3B_IOMUX 0x0e014
io 0xff77e015 > 0x15
cat /sys/kernel/debug/gpio
GPIO控制
测试GPIO2_B2
写入GPIO2_B2位低电平
io -4 -w 0xff780000 0x7f0
红灯亮,设置生效
测试GPIO2_B3
写入GPIO2_B3为输出
io -4 -w 0xff780004 0x80ff1
GPIO2_B3输出为低
io -4 -w 0xff780000 0xff0
发现不生效,查询IOMUX寄存器
io -4 -r 0xff77e004
返回
0x00c0
查询寄存器文档可知bit7:6为11, gpio2_b3没有设为gpio
设置iomux为gpio
io -4 -w 0xff7e004 0x0000
设置无效,可能是被驱动限制了
测试GPIO2_B1
bit位为(B-A)*8 + 1 = 9
由前面可知,DDR应该已经是输出
直接设置DR
io -4 -w 0xff780000 0x5f0

二,另外一种用GPIO Debug接口控制的方法

以GPIO2_B2为例
查看GPIO2_B2的gpio number

  1. rk3399:/sys/kernel/debug # cat gpio
    GPIOs 0-31, platform/pinctrl, gpio0:
    gpio-1 ( |vcc_sd ) out lo
    gpio-4 ( |bt_default_wake_host) in lo
    gpio-5 ( |power ) in hi
    gpio-9 ( |bt_default_reset ) out lo
    gpio-10 ( |reset ) out hi

GPIOs 32-63, platform/pinctrl, gpio1:
gpio-34 ( |int-n ) in hi
gpio-35 ( |camsys_gpio ) out hi
gpio-45 ( |enable ) out hi
gpio-46 ( |vsel ) out lo
gpio-49 ( |vsel ) out lo
gpio-54 ( |mpu6500 ) in lo

GPIOs 64-95, platform/pinctrl, gpio2:
gpio-64 ( |vbus-5v ) out lo
gpio-69 ( |power33 ) out hi
gpio-70 ( |power ) out hi
gpio-71 ( |reset ) out hi
gpio-72 ( |stanby ) out hi
gpio-73 ( |power18 ) out hi
gpio-74 ( |sysfs ) out lo
gpio-76 ( |int ) in hi
gpio-83 ( |bt_default_rts ) in hi
gpio-90 ( |bt_default_wake ) in lo
可知GPIO2_B2的number 为GPIO74
32*2 + 8+2

rk3399:/sys/class/gpio # echo 74 > export
1|rk3399:/sys/class/gpio # ls
export gpiochip0 gpiochip32 gpiochip96
gpio74 gpiochip128 gpiochip64 unexport
rk3399:/sys/class/gpio #

rk3399:/sys/class/gpio/gpio74 # ls
active_low device direction edge power subsystem uevent value
rk3399:/sys/class/gpio/gpio74 # echo 1 > value
rk3399:/sys/class/gpio/gpio74 # echo 0 > value
rk3399:/sys/class/gpio/gpio74 #

声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包 1 收藏 评论 打赏
评论
0个
时间排序
内容存在敏感词
手气红包
    0 条记录 第 0 /
    相关专栏
    关于作者
    艾编程的鲁小班

    艾编程的鲁小班

    一个爱技术的人

    原创 17
    阅读 4.7w
    收藏 11
    点赞 19
    评论 3
    打赏用户 0
    我要创作
    分享技术经验,可获取创作收益
    分类专栏
    置顶时间设置
    结束时间
    删除原因
    • 广告/SPAM
    • 恶意灌水
    • 违规内容
    • 文不对题
    • 重复发帖
    打赏作者
    易百纳技术社区
    艾编程的鲁小班
    您的支持将鼓励我继续创作!
    打赏金额:
    ¥1 易百纳技术社区
    ¥5 易百纳技术社区
    ¥10 易百纳技术社区
    ¥50 易百纳技术社区
    ¥100 易百纳技术社区
    支付方式:
    微信支付
    支付宝支付
    易百纳技术社区 微信支付
    易百纳技术社区
    打赏成功!

    感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

    举报反馈

    举报类型

    • 内容涉黄/赌/毒
    • 内容侵权/抄袭
    • 政治相关
    • 涉嫌广告
    • 侮辱谩骂
    • 其他

    详细说明

    审核成功

    发布时间设置
    发布时间:
    是否关联周任务-专栏模块

    审核失败

    失败原因
    备注
    Loading...
    易百纳技术社区
    确定要删除此文章、专栏、评论吗?
    确定
    取消
    易百纳技术社区
    每周任务
      去完成
      活动规则
      易百纳技术社区
      升级提醒
      升级

      恭喜您的社区称号由 升级为 “社区游民”

      同时为了感谢您对社区的支持,我们将送出xxx礼品一份, 记得领取哦~

      升级提醒
      易百纳技术社区

      惊喜礼包

      拼手气红包 红包规则
      祝福语
      恭喜发财,大吉大利!
      红包金额
      红包最小金额不能低于5元
      红包数量
      红包数量范围10~50个
      余额支付
      当前余额:
      可前往问答、专栏板块获取收益 去获取
      取 消 确 定

      小包子的红包

      恭喜发财,大吉大利

      已领取20/40,共1.6元 红包规则

        avatar