LED: Introduce LED blinking pattern code

It might be useful to display some different blinking patterns to
indicate specific system state (such as DFU mode vs. regular firmware)
diff --git a/firmware/libboard/common/include/led.h b/firmware/libboard/common/include/led.h
index 87e2fc9..d1db039 100644
--- a/firmware/libboard/common/include/led.h
+++ b/firmware/libboard/common/include/led.h
@@ -1,72 +1,28 @@
-/* ----------------------------------------------------------------------------
- *         ATMEL Microcontroller Software Support 
- * ----------------------------------------------------------------------------
- * Copyright (c) 2008, Atmel Corporation
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the disclaimer below.
- *
- * Atmel's name may not be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ----------------------------------------------------------------------------
- */
+#pragma once
 
-/**
- * \file
- *
- *  \section Purpose
- * 
- *  Small set of functions for simple and portable LED usage.
- * 
- *  \section Usage
- * 
- *  -# Configure one or more LEDs using LED_Configure and
- *     LED_ConfigureAll.
- *  -# Set, clear and toggle LEDs using LED_Set, LED_Clear and
- *     LED_Toggle.
- * 
- *  LEDs are numbered starting from 0; the number of LEDs depend on the
- *  board being used. All the functions defined here will compile properly
- *  regardless of whether the LED is defined or not; they will simply
- *  return 0 when a LED which does not exist is given as an argument.
- *  Also, these functions take into account how each LED is connected on to
- *  board; thus, \ref LED_Set might change the level on the corresponding pin
- *  to 0 or 1, but it will always light the LED on; same thing for the other
- *  methods.
- */
+enum led {
+	LED_RED,
+	LED_GREEN,
+	_NUM_LED
+};
 
-#ifndef _LED_
-#define _LED_
+enum led_pattern {
+	BLINK_ALWAYS_OFF	= 0,
+	BLINK_ALWAYS_ON		= 1,
+	BLINK_3O_5F		= 2,
+	BLINK_3O_30F		= 3,
+	BLINK_3O_1F_3O_30F	= 4,
+	BLINK_3O_1F_3O_1F_3O_30F= 5,
+	BLINK_200O_F		= 6,
+	BLINK_600O_F		= 7,
+	BLINK_CUSTOM		= 8,
+	_NUM_LED_BLINK
+};
 
-#include <stdint.h>
+void led_init(void);
+void led_fini(void);
+void led_stop(void);
+void led_start(void);
 
-//------------------------------------------------------------------------------
-//         Global Functions
-//------------------------------------------------------------------------------
-
-extern uint32_t LED_Configure( uint32_t dwLed ) ;
-
-extern uint32_t LED_Set( uint32_t dwLed ) ;
-
-extern uint32_t LED_Clear( uint32_t dwLed ) ;
-
-extern uint32_t LED_Toggle( uint32_t dwLed ) ;
-
-#endif /* #ifndef LED_H */
-
+void led_blink(enum led led, enum led_pattern blink);
+enum led_pattern led_get(enum led led);