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);