导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    F133A(D1s)如何使用GPIO:PG4 PG5?

    MR Series
    6
    11
    4580
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • C
      casojie LV 5 最后由 编辑

      按照计算,PG4 = 6*32+4 = 196

      root@TinaLinux:/sys/class/gpio# echo 196 > export 
      ash: write error: Invalid argument
      

      数字超过110+就不行了
      是还有一些东西需要配置的吗,比如设备树什么的
      小白萌新提问

      whycan D 2 条回复 最后回复 回复 引用 分享 0
      • whycan
        whycan晕哥 LV 9 @casojie 最后由 编辑

        @casojie

        # echo 196 > /sys/class/gpio/export
        [   39.433632] sun8iw20-pinctrl 2000000.pinctrl: pin PG4 already requested by 4021000.sdmmc; cannot claim for 2000000.pinctrl:196
        [   39.446522] sun8iw20-pinctrl 2000000.pinctrl: pin-196 (2000000.pinctrl:196) status -22
        sh: write error: Invalid argument
        #
        # echo 197 > /sys/class/gpio/export [   43.298997] sun8iw20-pinctrl 2000000.pinctrl: pin PG5 already requested by 4021000.sdmmc; cannot claim for 2000000.pinctrl:197
        
        [   43.313706] sun8iw20-pinctrl 2000000.pinctrl: pin-197 (2000000.pinctrl:197) status -22
        sh: write error: Invalid argument
        #
        #
        # echo 198 > /sys/class/gpio/export
        #
        #
        # echo $?
        0
        #
        

        我这边测试正常

        C 1 条回复 最后回复 回复 引用 分享 0
        • C
          casojie LV 5 @whycan 最后由 编辑

          @whycan 是还需要设置什么东西吗,我这边显示无效参数

          1 条回复 最后回复 回复 引用 分享 0
          • D
            dream LV 6 @casojie 最后由 编辑

            @casojie 直接用 sunxi_pinctrl 吧,不用去计算。

            下面是简单的使用方法,平时调试特别方便,实现原理是直接操作寄存器,所以不受驱动影响。

            查看引脚当前配置:
            root@sun8i:/proc/sys/debug/sunxi_pinctrl# echo PE24 > sunxi_pin
            echo PE24 > sunxi_pin

            root@sun8i:/proc/sys/debug/sunxi_pinctrl# cat sunxi_pin_configure
            cat sunxi_pin_configure
            printf register value...
            pin[PE24] function: 1; register addr: 0xf1c2089c
            pin[PE24] data: 1(default value : 0); register addr: 0xf1c208a0
            pin[PE24] dleve: 1(default value : 1); register addr: 0xf1c208a8
            pin[PE24] pull: 0(default value : 0); register addr: 0xf1c208b0

            设置引脚为低电平输出:(注意要先设置 function )
            root@sun8i:/proc/sys/debug/sunxi_pinctrl# echo PE24 0 > data
            echo PE24 0 > data

            root@sun8i:/proc/sys/debug/sunxi_pinctrl# cat sunxi_pin_configure
            cat sunxi_pin_configure
            printf register value...
            pin[PE24] function: 1; register addr: 0xf1c2089c
            pin[PE24] data: 0(default value : 0); register addr: 0xf1c208a0
            pin[PE24] dleve: 1(default value : 1); register addr: 0xf1c208a8
            pin[PE24] pull: 0(default value : 0); register addr: 0xf1c208b0

            设置引脚为高电平输出:
            root@sun8i:/proc/sys/debug/sunxi_pinctrl# echo PE24 1 > data
            echo PE24 1 > data

            root@sun8i:/proc/sys/debug/sunxi_pinctrl# cat sunxi_pin_configure
            cat sunxi_pin_configure
            printf register value...
            pin[PE24] function: 1; register addr: 0xf1c2089c
            pin[PE24] data: 1(default value : 0); register addr: 0xf1c208a0
            pin[PE24] dleve: 1(default value : 1); register addr: 0xf1c208a8
            pin[PE24] pull: 0(default value : 0); register addr: 0xf1c208b0

            C 1 条回复 最后回复 回复 引用 分享 0
            • C
              casojie LV 5 @dream 最后由 编辑

              @dream 我在这路径下没有这个文件
              /proc/sys/debug/sunxi_pinctrl
              没有sunxi_pinctrl

              D Y 2 条回复 最后回复 回复 引用 分享 0
              • YuzukiTsuru
                柚木 鉉 LV 9 最后由 编辑

                ash: write error: Invalid argument 参数无效看一下是不是kernel配置gpio有问题,建议启用debug输出看看

                C 1 条回复 最后回复 回复 引用 分享 0
                • C
                  casojie LV 5 @YuzukiTsuru 最后由 编辑

                  @yuzukitsuru

                  configfs-gadget gadget: high-speed config #1: c
                  android_work: sent uevent USB_STATE=CONFIGURED
                  sun8iw20-pinctrl 2000000.pinctrl: pin PG4 already requested by 4021000.sdmmc; cannot claim for 2000000.pinctrl:196
                  sun8iw20-pinctrl 2000000.pinctrl: pin-196 (2000000.pinctrl:196) status -22

                  1 条回复 最后回复 回复 引用 分享 0
                  • D
                    dream LV 6 @casojie 最后由 编辑

                    @casojie 我的不是 F133A 的平台,我没有 D1 平台,所以不知道具体路径, 你可以 find 下看看,如果没有的话,试试:mount -t debugfs debug /proc/sys/debug

                    1 条回复 最后回复 回复 引用 分享 0
                    • C
                      casojie LV 5 最后由 编辑

                      解决了,引脚占用问题,谢谢各位

                      W 1 条回复 最后回复 回复 引用 分享 0
                      • W
                        wzq13078116220 LV 2 @casojie 最后由 编辑

                        @casojie 请问是怎么知道是引脚占用问题的和怎么解决的?

                        1 条回复 最后回复 回复 引用 分享 0
                        • Y
                          yyfeng88625 LV 2 @casojie 最后由 编辑

                          @casojie

                          重新编译内核

                          make kernel_menuconfig
                          

                          勾上
                          Device Drivers -> Pin controllers -> Allwinner SOC PINCTRL DRIVER -> pinctrl sunxi debugfs driver

                          1 条回复 最后回复 回复 引用 分享 0
                          • 1 / 1
                          • First post
                            Last post

                          Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                          行为准则 | 用户协议 | 隐私权政策