问题简单描述:
我无法通过gpioset命令或者echo xxx/export,direction,value命令,拉低PNL_BACKLIGHT_CTRL引脚和PNL_VDD_CTRL引脚
需求:如何在设备树内核调用GPIO引脚的前提下,又能拉高/拉低该GPIO引脚?
报错信息
硬件电路设计
PNL_VDD_CTRL连接的是SOC AB20(GPIO1_6)引脚
PNL_BACKLIGHT_CTRL连接的是SOC AA21(GPIO1_3)引脚
设备树
上电后PNL_VDD_CTRL和PNL_BACKLIGHT_CTRL引脚会被拉高
板端查看GPIO状态和regulator状态
cat /sys/kernel/debug/gpio
cat /sys/kernel/debug/regulator/regulator_summary
现在当我检测到VCC断开并且电压低于阈值的时候,需要拉低PNL_VDD_CTRL和PNL_BACKLIGHT_CTRL引脚,在这个环节出现了如下报错:
03:00:03 MCU,(448 )operator(): Failed to set GPIO631 value.
Path: /sys/class/gpio/gpio631/value, Error: No such file or directory
03:00:03 MCU,(448 )operator(): Failed to set GPIO634 value.
Path: /sys/class/gpio/gpio634/value, Error: No such file or directory
我在板端通过两种调试指令gpioset或者echo xxx/export,direction,value都失效
注释掉设备树中这部分代码,则可以通过板端指令进行设置。问题在于,实际应用中,得要在内核拉高PNL_VDD_CTRL和PNL_BACKLIGHT_CTRL引脚,而不能等到应用层再拉高。
所以如何在保留内核驱动拉高PNL_VDD_CTRL和PNL_BACKLIGHT_CTRL引脚的情况下,又在应用层将其拉低,实现VCC断开主动关屏的效果。那就得解决上述报Device or resource busy的问题