TI am1808/DA850/L138 linux下GPIO不能控制的问题解决。

废话少说,直接切入正题。想要把引脚注册为GPIO功能的步骤为:

1.添加引脚复用表,在这个文件里面:arch/arm/mach-davinci/include/mach/mux.h ,找到enum davinci_da850_index{}数组,这个数组是枚举类型的,相信大家都知道是什么意思,把要加入的GPIO加入到这个数组里面。

2.添加引脚复用初始化表,在这个文件里面:arch/arm/mach-davinci/da850.c,找到static const struct mux_config da850_pins[]这个数组,这是配置引脚的初始化表,把引脚设置成什么GPIO功能就在这个宏里面:MUX_CFG(DA850, NUART0_CTS,  3,  24, 15, 2,  false)。这个宏在arch/arm/mach-davinci/mux.h定义,可以自己去看下。

说明一下参数:第一个是soc也就是平台,由于am1808和DA850的寄存器设置相同,所以是通用的,第二个参数是引脚,省略平台前缀,第三个是引脚复用寄存器的的名称,宏展开会把这个参数与“PINMUX”连接起来,例如这个参数是3,展开后是PINMUX3,至于TI的引脚复用寄存器,am1808有20个,PINMUX0~~~PINMUX19,每个寄存器4个字节

第四个参数是偏移值,设置寄存器位的值,想要设置第24位参数就是24,,第五个参数是掩码,第六个参数比较重要,是mux_mode,也就是设置这个复用寄存器的GPIO引脚功能,


评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值