3

我需要通过 GPIO 信号将运行 Angstrom OS 的 BeagleBone 设备从睡眠模式唤醒。

我读到使用/sys/class/gpio/gpioXX/power/wakeup是方法。问题是电源目录下没有任何“唤醒”文件。那么,我应该如何进行激活呢?有没有不重新编译内核的解决方案?

我可以从 GPIO 值中很好地读取,所以 GPIO sysfs 正在工作。

4

1 回答 1

2

There was issue inside GPIO driver in OMAP4xxx kernel, when GPIO banks was initialized before mux subsystem initialisation. This effectively prevented wakeups by pins in GPIO mode.

You can check this, by reading mux[] fields of struct gpio_bank (file drivers/omap/gpio-omap.c). They should not hold NULL values.

There is a for loop at end of void omap_gpio_mod_init(struct gpio_bank *bank) function. You need to remove it, and initialize mux pointer at end of static int omap_gpio_request(struct gpio_chip *chip, unsigned offset) function.

This will ensure, that it will be inited correctly.

Also, as far as I remember, the was some issue with debounce clocks. If my first advice wont work, try to disable debounce for that pin.

于 2013-01-29T17:11:19.227 回答