CONFIG_GPIO_SYSFS faz com que / sys / class / leds desapareçam

2

Eu tenho uma placa Linux embarcada na qual estou trabalhando, com um botão e dois LEDs.

Por padrão, posso controlar os LEDs via

/sys/class/leds/redled/brightness

No entanto, não tenho como monitorar o botão. Se eu ativar o CONFIG_GPIO_SYSFS, não consigo mais ver os LEDs - / sys / class / leds / está vazio. Além disso, os GPIOs que em teoria deveriam ir para os LEDs não fazem nada, então eu não posso nem mesmo hackeá-lo.

Alguma idéia de como eu pude fazer isso funcionar?

    
por trycatch 05.06.2013 / 16:59

1 resposta

0

A solução revelou-se bastante simples. Acontece que eu estava cutucando o GPIO errado. O deslocamento inicial foi definido em:

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

como:

#define PIN_BASE    NR_AIC_IRQS

NR_AIC_IRQS é definido em irqs.h no mesmo diretório que:

#define NR_AIC_IRQS 32

Os pinos que eu estava procurando eram PB12 e PB13, que eu encontrei no gpio.h definido como:

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

Então os pinos que eu estava procurando eram 32 + 32 + 12 = 76 e 77.

    
por 06.06.2013 / 21:37