Skip to content
Snippets Groups Projects
Commit 15ab6141 authored by Hauke Petersen's avatar Hauke Petersen
Browse files

boards/openmote-cc2538: unified LED defines

parent 058d1967
No related branches found
No related tags found
No related merge requests found
......@@ -19,41 +19,16 @@
*/
#include "board.h"
#include "cpu.h"
static inline void leds_init(void);
#include "periph/gpio.h"
void board_init(void)
{
/* initialize the boards LEDs */
leds_init();
gpio_init(LED0_PIN, GPIO_DIR_OUT, GPIO_NOPULL);
gpio_init(LED1_PIN, GPIO_DIR_OUT, GPIO_NOPULL);
gpio_init(LED2_PIN, GPIO_DIR_OUT, GPIO_NOPULL);
gpio_init(LED3_PIN, GPIO_DIR_OUT, GPIO_NOPULL);
/* initialize the CPU */
cpu_init();
}
/**
* @brief Initialize the boards on-board LEDs (LD3 and LD4)
*
* The LED initialization is hard-coded in this function. As the LEDs are soldered
* onto the board they are fixed to their CPU pins.
*
* The LEDs are connected to the following pins:
* - LED1: PC4 (red)
* - LED2: PC5 (orange)
* - LED3: PC6 (yellow)
* - LED4: PC7 (green)
*/
static inline void leds_init(void)
{
/* set pins to be controlled by software */
LED_PORT->AFSEL &= ~((1 << LED_RED_PIN) | (1 << LED_GREEN_PIN) |
(1 << LED_YELLOW_PIN) | (1 << LED_ORANGE_PIN));
/* configure pins as output */
LED_PORT->DIR |= ((1 << LED_RED_PIN) | (1 << LED_GREEN_PIN) |
(1 << LED_YELLOW_PIN) | (1 << LED_ORANGE_PIN));
/* configure io-mux for used pins */
IOC->PC_OVER[LED_RED_PIN] = IOC_OVERRIDE_OE;
IOC->PC_OVER[LED_GREEN_PIN] = IOC_OVERRIDE_OE;
IOC->PC_OVER[LED_YELLOW_PIN] = IOC_OVERRIDE_OE;
IOC->PC_OVER[LED_ORANGE_PIN] = IOC_OVERRIDE_OE;
}
......@@ -29,35 +29,35 @@
#endif
/**
* @name LED pin definitions
* @brief LED pin definitions and handlers
* @{
*/
#define LED0_PIN GPIO_PIN(2, 4)
#define LED1_PIN GPIO_PIN(2, 7)
#define LED2_PIN GPIO_PIN(2, 6)
#define LED3_PIN GPIO_PIN(2, 5)
#define LED_PORT GPIO_C
#define LED_RED_PIN (4)
#define LED_GREEN_PIN (7)
#define LED_YELLOW_PIN (6)
#define LED_ORANGE_PIN (5)
/** @} */
#define LED0_MASK (1 << 4)
#define LED1_MASK (1 << 7)
#define LED2_MASK (1 << 6)
#define LED3_MASK (1 << 5)
/**
* @name Macros for controlling the on-board LEDs.
* @{
*/
#define LED_RED_ON (LED_PORT->DATA |= (1 << LED_RED_PIN))
#define LED_RED_OFF (LED_PORT->DATA &= ~(1 << LED_RED_PIN))
#define LED_RED_TOGGLE (LED_PORT->DATA ^= (1 << LED_RED_PIN))
#define LED0_ON (LED_PORT->DATA |= LED0_MASK)
#define LED0_OFF (LED_PORT->DATA &= ~LED0_MASK)
#define LED0_TOGGLE (LED_PORT->DATA ^= LED0_MASK)
#define LED_GREEN_ON (LED_PORT->DATA |= (1 << LED_GREEN_PIN))
#define LED_GREEN_OFF (LED_PORT->DATA &= ~(1 << LED_GREEN_PIN))
#define LED_GREEN_TOGGLE (LED_PORT->DATA ^= (1 << LED_GREEN_PIN))
#define LED1_ON (LED_PORT->DATA |= LED1_MASK)
#define LED1_OFF (LED_PORT->DATA &= ~LED1_MASK)
#define LED1_TOGGLE (LED_PORT->DATA ^= LED1_MASK)
#define LED_YELLOW_ON (LED_PORT->DATA |= (1 << LED_YELLOW_PIN))
#define LED_YELLOW_OFF (LED_PORT->DATA &= ~(1 << LED_YELLOW_PIN))
#define LED_YELLOW_TOGGLE (LED_PORT->DATA ^= (1 << LED_YELLOW_PIN))
#define LED2_ON (LED_PORT->DATA |= LED2_MASK)
#define LED2_OFF (LED_PORT->DATA &= ~LED2_MASK)
#define LED2_TOGGLE (LED_PORT->DATA ^= LED2_MASK)
#define LED_ORANGE_ON (LED_PORT->DATA |= (1 << LED_ORANGE_PIN))
#define LED_ORANGE_OFF (LED_PORT->DATA &= ~(1 << LED_ORANGE_PIN))
#define LED_ORANGE_TOGGLE (LED_PORT->DATA ^= (1 << LED_ORANGE_PIN))
#define LED3_ON (LED_PORT->DATA |= LED3_MASK)
#define LED3_OFF (LED_PORT->DATA &= ~LED3_MASK)
#define LED3_TOGGLE (LED_PORT->DATA ^= LED3_MASK)
/** @} */
/**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment