NUC980DK61YC,使用G13(管脚编号是205)用作普通io口,出现报错
报错:# echo 205 > /sys/class/gpio/export
Please Check GPIOG13's multi-function = 0x7
sh: write error: Invalid argument
差错:Jtag0功能被默认使用,make linux-menuconfig查了内核配置,没有相关设置选项
再查,定义在$(KERN-DIR)/arch/arm/mach-nuc980/include/mach/gpio.h中:
#define NUC980_PG11 (0xC0 + 11)
#define NUC980_PG12 (0xC0 + 12)
#define NUC980_PG13 (0xC0 + 13)
#define NUC980_PG14 (0xC0 + 14)
#define NUC980_PG15 (0xC0 + 15)
$(KERN-DIR)/drivers/pinctrl/pinctrl-nuc980.c,设置和注释:
编译,并无作用
查到别人的处理:参考博文:JTAG0引脚复用GPIO问题
https://blog.youkuaiyun.com/darennet/article/details/107707816
根本原因:$(KERN-DIR)/drivers/pinctrl-nuc980.c里nuc980_set_mux函数,没有处理G13的设置,所以需要增加额外单独的设置;
修改:
然后再调用echo 205 > /sys/class/gpio/export,就不会出错了 !!!!