STM32-P103: implement WAKEUP button driver
authorarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Thu, 23 Sep 2010 10:38:14 +0000 (10:38 +0000)
committerarighi <arighi@38d2e660-2303-0410-9eaa-f027e97ec537>
Thu, 23 Sep 2010 10:38:14 +0000 (10:38 +0000)
git-svn-id: https://src.develer.com/svnoss/bertos/trunk@4270 38d2e660-2303-0410-9eaa-f027e97ec537

boards/stm32-p103/hw/hw_kbd.h
boards/stm32-p103/hw/kbd_map.h

index e78a1ce0e9e1096f24ab9d717b7241a0c64404e0..905c3c7d3e1737a4bb99c2a58be49fd2973d1393 100644 (file)
  * invalidate any other reasons why the executable file might be covered by
  * the GNU General Public License.
  *
- * Copyright 2003, 2004, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
- * Copyright 2000 Bernie Innocenti
- * All Rights Reserved.
- * -->
+ * Copyright 2010 Develer S.r.l. (http://www.develer.com/)
  *
- * \brief Keyboard hardware-specific definitions
+ * -->
  *
+ * \author Andrea Righi <arighi@develer.com>
  *
- * \author Francesco Sacchi <batt@develer.com>
- * \author Stefano Fedrigo <a@develer.com>
+ * \brief Keyboard driver of the STM32-P103 evaluation board
  */
 
 #ifndef HW_KBD_H
 #include "hw/kbd_map.h"
 
 #include <cfg/macros.h>
+#include <drv/gpio_stm32.h>
 
-#warning TODO:This is an example implementation, you must implement it!
-
-#define K_RPT_MASK (K_UP | K_DOWN | K_OK | K_CANCEL)
+#define K_RPT_MASK (K_WAKEUP)
 
 #define KBD_HW_INIT \
        do { \
-                       /* Put here code to init hw */ \
+               stm32_gpioPinConfig((struct stm32_gpio *)GPIOA_BASE, \
+                                       BV(0), GPIO_MODE_IN_FLOATING, \
+                                       GPIO_SPEED_50MHZ); \
        } while (0)
 
 EXTERN_C int emul_kbdReadCols(void);
@@ -62,10 +60,7 @@ EXTERN_C int emul_kbdReadCols(void);
  */
 INLINE keymask_t kbd_readkeys(void)
 {
-       /* Implement me! */
-
-       //Only for test remove when implement this function
-       return 0;
+       return stm32_gpioPinRead((struct stm32_gpio *)GPIOA_BASE, BV(0));
 }
 
 #endif /* HW_KBD_H */
index 15e4f083d929eeabc564991d6e05b46721880594..d19ab81ef2049224f43c28d7975fa7e66da5fcc5 100644 (file)
  * invalidate any other reasons why the executable file might be covered by
  * the GNU General Public License.
  *
- * Copyright 2003, 2004, 2005, 2006, 2008 Develer S.r.l. (http://www.develer.com/)
- * Copyright 2000 Bernie Innocenti
- * All Rights Reserved.
- * -->
+ * Copyright 2010 Develer S.r.l. (http://www.develer.com/)
  *
- * \brief Keyboard map definitions.
+ * -->
  *
+ * \author Andrea Righi <arighi@develer.com>
  *
- * \author Francesco Sacchi <batt@develer.com>
- * \author Stefano Fedrigo <a@develer.com>
+ * \brief Keyboard map definitions for the STM32-P103 evaluation board
  */
 
 #ifndef HW_KBD_MAP_H
@@ -43,9 +40,6 @@
 
 #include <cfg/macros.h>
 
-#warning TODO:This is an example implentation, you must implement it!
-
-
 /**
  * Type for keyboard mask.
  */
@@ -55,10 +49,7 @@ typedef uint16_t keymask_t;
  * \name Keycodes.
  */
 /*@{*/
-#define K_UP       BV(0)
-#define K_DOWN     BV(1)
-#define K_OK       BV(2)
-#define K_CANCEL   BV(3)
+#define K_WAKEUP   BV(0)
 
 #define K_REPEAT   BV(13) /**< This is a repeated keyevent. */
 #define K_TIMEOUT  BV(14) /**< Fake key event for timeouts. */