diff --git a/arch/avr/src/at91uc3/at91uc3_internal.h b/arch/avr/src/at91uc3/at91uc3_internal.h index bede4717fe54e23545aca1879b95e245df7553fd..45d523aedce1491ef9330efca99c814d48100485 100755 --- a/arch/avr/src/at91uc3/at91uc3_internal.h +++ b/arch/avr/src/at91uc3/at91uc3_internal.h @@ -92,6 +92,8 @@ */ #define GPIO_VALUE (1 << 10) /* Bit 10: Output value */ +#define GPIO_HIGH GPIO_VALUE +#define GPIO_LOW (0) /* Input/Ouptut (Valid only if GPIO_ENABLE) * .... ..O. .... .... diff --git a/configs/avr32dev1/include/board.h b/configs/avr32dev1/include/board.h index 7931e352530aad318eb24c91ddd05813640a41ef..2ef9532f0f34274e8c46c4598a2068e8434b8a38 100755 --- a/configs/avr32dev1/include/board.h +++ b/configs/avr32dev1/include/board.h @@ -74,15 +74,18 @@ #define PINMUX_USART1_TXD PINMUX_USART1_TXD_1 /* LED definitions ******************************************************************/ - -#define LED_STARTED 0 -#define LED_HEAPALLOCATE 1 -#define LED_IRQSENABLED 2 -#define LED_STACKCREATED 3 -#define LED_INIRQ 4 -#define LED_SIGNAL 5 -#define LED_ASSERTION 6 -#define LED_PANIC 7 +/* The AVR32DEV1 board has 3 LEDs, two of which can be controlled through GPIO pins */ + + /* ON OFF */ + /* LED1 LED2 LED1 LED2 */ +#define LED_STARTED 0 /* OFF OFF OFF OFF */ +#define LED_HEAPALLOCATE 0 /* OFF OFF OFF OFF */ +#define LED_IRQSENABLED 0 /* OFF OFF OFF OFF */ +#define LED_STACKCREATED 1 /* ON OFF OFF OFF */ +#define LED_INIRQ 2 /* ON ON ON OFF */ +#define LED_SIGNAL 2 /* ON ON ON OFF */ +#define LED_ASSERTION 2 /* ON ON ON OFF */ +#define LED_PANIC 2 /* ON ON ON OFF */ /************************************************************************************ * Public Types diff --git a/configs/avr32dev1/src/avr32dev1_internal.h b/configs/avr32dev1/src/avr32dev1_internal.h index 0388c01b86a616d5e72271b890da9a8a81cefe62..9a673ae0c441fe103256da3d75ae11b40cd7268d 100755 --- a/configs/avr32dev1/src/avr32dev1_internal.h +++ b/configs/avr32dev1/src/avr32dev1_internal.h @@ -49,6 +49,27 @@ ************************************************************************************/ /* AVRDEV1 GPIO Pin Definitions *****************************************************/ +/* LEDs + * + * The AVR32DEV1 board has 3 LEDs, two of which can be controlled through GPIO pins. + * + * PIN 13 PA7 LED1 + * PIN 14 PA8 LED2 + */ + +#define PINMUX_GPIO_LED1 (GPIO_ENABLE | GPIO_OUTPUT | GPIO_LOW | GPIO_PORTA | 7) +#define PINMUX_GPIO_LED2 (GPIO_ENABLE | GPIO_OUTPUT | GPIO_LOW | GPIO_PORTA | 8) + +/* KEYs + * + * The AVR32DEV1 board has 3 KEYs, two of which can be sensed through GPIO pins. + * + * PIN 24 PB2 KEY1 + * PIN 25 PB3 KEY2 + */ + +#define PINMUX_GPIO_KEY1 (GPIO_ENABLE | GPIO_INPUT | GPIO_PORTB | 2) +#define PINMUX_GPIO_KEY2 (GPIO_ENABLE | GPIO_INPUT | GPIO_PORTB | 3) /************************************************************************************ * Public Types diff --git a/configs/avr32dev1/src/up_leds.c b/configs/avr32dev1/src/up_leds.c index 5118ccde651f4c570ba09c027a95f32899a96686..ba29aeeb675528befc57a741eb044841f5e23289 100755 --- a/configs/avr32dev1/src/up_leds.c +++ b/configs/avr32dev1/src/up_leds.c @@ -105,7 +105,8 @@ void up_ledinitialize(void) { -# warning "Not implemented" + at91uc3_configgpio(PINMUX_GPIO_LED1); + at91uc3_configgpio(PINMUX_GPIO_LED2); } /**************************************************************************** @@ -114,7 +115,8 @@ void up_ledinitialize(void) void up_ledon(int led) { -# warning "Not implemented" + at91uc3_gpiowrite(PINMUX_GPIO_LED1, (led != 0)); + at91uc3_gpiowrite(PINMUX_GPIO_LED2, (led == 2)); } /**************************************************************************** @@ -123,6 +125,7 @@ void up_ledon(int led) void up_ledoff(int led) { -# warning "Not implemented" + at91uc3_gpiowrite(PINMUX_GPIO_LED1, (led == 2)); + at91uc3_gpiowrite(PINMUX_GPIO_LED2, false); } #endif /* CONFIG_ARCH_LEDS */