QCA9531修改寄存器值控制GPIO

    由高通9531芯片规格书可知,芯片对应的GPIO有18个GPIO0-17,下图是规格书定义。下面以SKYLAB的SKW99模块为例进行说明。

SKYLAB的SKW99模块使用源码为QSDK,GPIO0-3默认为JTAG功能,GPIO9和10为uart串口,剩下的GPIO11-16为默认为灯的功能,GPIO17为WPS按键功能。

GPIO11-17对应功能源码地址为:

qsdk/target/linux/ar71xx/files/arch/mips/ath79/mach-ap147.c

下面以在固件中控制GPIO0进行讲述说明,固件中需要有io工具:

1、将GPIO1转为GPIO功能:

下面是芯片规格书中关于GPIO0-3功能的定义:对应寄存器的地址为0x1804006C

读取寄存器0x1804006C寄存器的值:

root@OpenWrt:~# io -4 0x1804006C
1804006c:  00000020
root@OpenWrt:~#

高通规格书,没有详细介绍bit1值对应的功能,根据实践:

默认0,对应jtag(默认),1对应的是GPIO功能。

将bit1设置为1,则对应寄存器的值应设置为0x00000022

root@OpenWrt:/# io -4 0x1804006c 0x00000022    //写寄存器值
root@OpenWrt:/# 
root@OpenWrt:/# io -4 0x1804006c               //读寄存器值
1804006c:  00000022
root@OpenWrt:/#

2、对GPIO1进行操作

步骤如下:

(1)先注册GPIO1

root@OpenWrt:/# echo 1 > /sys/class/gpio/export 
root@OpenWrt:/# 
root@OpenWrt:/# echo out > /sys/class/gpio/gpio1/direction 
root@OpenWrt:/# 

 (2)查看系统GPIO的状态

root@OpenWrt:/# cat /sys/kernel/debug/gpio 
GPIOs 0-17, ath79:
 gpio-0   (sysfs               ) out lo
 gpio-1   (sysfs               ) out lo
 gpio-13  (sysfs               ) out hi
 gpio-17  (WPS button          ) in  hi
root@OpenWrt:/# 

(3)对GPIO1进行拉高操作

(4)对GPIO1进行拉低操作

同理Link1灯GPIO16的操作控制如下:寄存器为0x1804003C,bit0-bit7对应GPIO16.

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值