CONFIG_GPIO_SYSFS는 /sys/class/leds를 사라지게 만듭니다.

CONFIG_GPIO_SYSFS는 /sys/class/leds를 사라지게 만듭니다.

저는 버튼과 여러 개의 LED가 있는 임베디드 Linux 보드를 개발 중입니다.

기본적으로 다음을 통해 LED를 제어할 수 있습니다.

/sys/class/leds/redled/brightness

그러나 버튼을 모니터링할 수는 없습니다. CONFIG_GPIO_SYSFS를 활성화하면 LED가 표시되지 않습니다. /sys/class/leds/는 비어 있습니다. 그리고 이론적으로 LED가 연결되어야 하는 GPIO는 아무것도 하지 않아서 해킹조차 할 수 없습니다.

이 두 기능을 모두 작동시키는 방법에 대한 아이디어가 있습니까?

답변1

해결책은 매우 간단하다는 것이 밝혀졌습니다. 내가 잘못된 GPIO를 찔렀다는 것이 밝혀졌습니다. 시작 오프셋은 다음과 같이 정의됩니다.

$LINUX/arch/arm/mach-at91/include/mach/gpio.h

처럼:

#define PIN_BASE    NR_AIC_IRQS

NR_AIC_IRQS는 동일한 디렉터리의 irqs.h에 정의되어 있습니다.

#define NR_AIC_IRQS 32

내가 찾고 있는 핀은 PB12와 PB13입니다. gpio.h에 다음과 같이 정의되어 있습니다.

#define AT91_PIN_PB12   (PIN_BASE + 0X20 + 12)
#define AT91_PIN_PB13   (PIN_BASE + 0X20 + 13)

그래서 제가 찾는 핀은 32 + 32 + 12 = 76과 77입니다.

관련 정보