From 1775b65e07fae808dc50f9cee2005608cd3a26de Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Wed, 27 May 2015 16:51:04 +0100
Subject: [PATCH] stmhal: Remove PYBVxx defines and use config vars for
 UART/CAN names.

Now all stmhal-based boards can name their peripherals (if they want) to
any string.
---
 stmhal/boards/PYBV10/mpconfigboard.h | 10 ++++++--
 stmhal/boards/PYBV3/mpconfigboard.h  |  2 --
 stmhal/boards/PYBV4/mpconfigboard.h  | 11 +++++++--
 stmhal/can.c                         | 12 ++++++----
 stmhal/can.h                         |  6 -----
 stmhal/uart.c                        | 34 ++++++++++++++++++++--------
 stmhal/uart.h                        |  8 -------
 7 files changed, 48 insertions(+), 35 deletions(-)

diff --git a/stmhal/boards/PYBV10/mpconfigboard.h b/stmhal/boards/PYBV10/mpconfigboard.h
index 7fe33894d..ca3764c2b 100644
--- a/stmhal/boards/PYBV10/mpconfigboard.h
+++ b/stmhal/boards/PYBV10/mpconfigboard.h
@@ -1,5 +1,3 @@
-#define PYBV10
-
 #define MICROPY_HW_BOARD_NAME       "PYBv1.0"
 #define MICROPY_HW_MCU_NAME         "STM32F405RG"
 #define MICROPY_PY_SYS_PLATFORM     "pyboard"
@@ -29,18 +27,22 @@
 #define MICROPY_HW_RTC_USE_LSE      (1)
 
 // UART config
+#define MICROPY_HW_UART1_NAME "XB"
 #define MICROPY_HW_UART1_PORT (GPIOB)
 #define MICROPY_HW_UART1_PINS (GPIO_PIN_6 | GPIO_PIN_7)
 #define MICROPY_HW_UART2_PORT (GPIOA)
 #define MICROPY_HW_UART2_PINS (GPIO_PIN_2 | GPIO_PIN_3)
 #define MICROPY_HW_UART2_RTS  (GPIO_PIN_1)
 #define MICROPY_HW_UART2_CTS  (GPIO_PIN_0)
+#define MICROPY_HW_UART3_NAME "YB"
 #define MICROPY_HW_UART3_PORT (GPIOB)
 #define MICROPY_HW_UART3_PINS (GPIO_PIN_10 | GPIO_PIN_11)
 #define MICROPY_HW_UART3_RTS  (GPIO_PIN_14)
 #define MICROPY_HW_UART3_CTS  (GPIO_PIN_13)
+#define MICROPY_HW_UART4_NAME "XA"
 #define MICROPY_HW_UART4_PORT (GPIOA)
 #define MICROPY_HW_UART4_PINS (GPIO_PIN_0 | GPIO_PIN_1)
+#define MICROPY_HW_UART6_NAME "YA"
 #define MICROPY_HW_UART6_PORT (GPIOC)
 #define MICROPY_HW_UART6_PINS (GPIO_PIN_6 | GPIO_PIN_7)
 
@@ -52,6 +54,10 @@
 #define MICROPY_HW_I2C2_SCL (pin_B10)
 #define MICROPY_HW_I2C2_SDA (pin_B11)
 
+// CAN busses
+#define MICROPY_HW_CAN1_NAME "YA" // CAN1 on RX,TX = Y3,Y4 = PB8,PB9
+#define MICROPY_HW_CAN2_NAME "YB" // CAN2 on RX,TX = Y5,Y6 = PB12,PB13
+
 // USRSW has no pullup or pulldown, and pressing the switch makes the input go low
 #define MICROPY_HW_USRSW_PIN        (pin_B3)
 #define MICROPY_HW_USRSW_PULL       (GPIO_PULLUP)
diff --git a/stmhal/boards/PYBV3/mpconfigboard.h b/stmhal/boards/PYBV3/mpconfigboard.h
index 86daf0c39..a837aaf4a 100644
--- a/stmhal/boards/PYBV3/mpconfigboard.h
+++ b/stmhal/boards/PYBV3/mpconfigboard.h
@@ -1,5 +1,3 @@
-#define PYBV3
-
 #define MICROPY_HW_BOARD_NAME       "PYBv3"
 #define MICROPY_HW_MCU_NAME         "STM32F405RG"
 
diff --git a/stmhal/boards/PYBV4/mpconfigboard.h b/stmhal/boards/PYBV4/mpconfigboard.h
index 4c46052b2..8b57d1e60 100644
--- a/stmhal/boards/PYBV4/mpconfigboard.h
+++ b/stmhal/boards/PYBV4/mpconfigboard.h
@@ -1,7 +1,6 @@
-#define PYBV4
-
 #define MICROPY_HW_BOARD_NAME       "PYBv4"
 #define MICROPY_HW_MCU_NAME         "STM32F405RG"
+#define MICROPY_PY_SYS_PLATFORM     "pyboard"
 
 #define MICROPY_HW_HAS_SWITCH       (1)
 #define MICROPY_HW_HAS_SDCARD       (1)
@@ -28,18 +27,22 @@
 #define MICROPY_HW_RTC_USE_LSE      (1)
 
 // UART config
+#define MICROPY_HW_UART1_NAME "XB"
 #define MICROPY_HW_UART1_PORT (GPIOB)
 #define MICROPY_HW_UART1_PINS (GPIO_PIN_6 | GPIO_PIN_7)
 #define MICROPY_HW_UART2_PORT (GPIOA)
 #define MICROPY_HW_UART2_PINS (GPIO_PIN_2 | GPIO_PIN_3)
 #define MICROPY_HW_UART2_RTS  (GPIO_PIN_1)
 #define MICROPY_HW_UART2_CTS  (GPIO_PIN_0)
+#define MICROPY_HW_UART3_NAME "YB"
 #define MICROPY_HW_UART3_PORT (GPIOB)
 #define MICROPY_HW_UART3_PINS (GPIO_PIN_10 | GPIO_PIN_11)
 #define MICROPY_HW_UART3_RTS  (GPIO_PIN_14)
 #define MICROPY_HW_UART3_CTS  (GPIO_PIN_13)
+#define MICROPY_HW_UART4_NAME "XA"
 #define MICROPY_HW_UART4_PORT (GPIOA)
 #define MICROPY_HW_UART4_PINS (GPIO_PIN_0 | GPIO_PIN_1)
+#define MICROPY_HW_UART6_NAME "YA"
 #define MICROPY_HW_UART6_PORT (GPIOC)
 #define MICROPY_HW_UART6_PINS (GPIO_PIN_6 | GPIO_PIN_7)
 
@@ -51,6 +54,10 @@
 #define MICROPY_HW_I2C2_SCL (pin_B10)
 #define MICROPY_HW_I2C2_SDA (pin_B11)
 
+// CAN busses
+#define MICROPY_HW_CAN1_NAME "YA" // CAN1 on RX,TX = Y3,Y4 = PB8,PB9
+#define MICROPY_HW_CAN2_NAME "YB" // CAN2 on RX,TX = Y5,Y6 = PB12,PB13
+
 // USRSW has no pullup or pulldown, and pressing the switch makes the input go low
 #define MICROPY_HW_USRSW_PIN        (pin_B3)
 #define MICROPY_HW_USRSW_PULL       (GPIO_PULLUP)
diff --git a/stmhal/can.c b/stmhal/can.c
index f4758399c..18fd31eeb 100644
--- a/stmhal/can.c
+++ b/stmhal/can.c
@@ -352,11 +352,13 @@ STATIC mp_obj_t pyb_can_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t n
     if (MP_OBJ_IS_STR(args[0])) {
         const char *port = mp_obj_str_get_str(args[0]);
         if (0) {
-        #if defined(PYBV10)
-        } else if (strcmp(port, "YA") == 0) {
-            o->can_id = PYB_CAN_YA;
-        } else if (strcmp(port, "YB") == 0) {
-            o->can_id = PYB_CAN_YB;
+        #ifdef MICROPY_HW_CAN1_NAME
+        } else if (strcmp(port, MICROPY_HW_CAN1_NAME) == 0) {
+            o->can_id = PYB_CAN_1;
+        #endif
+        #ifdef MICROPY_HW_CAN2_NAME
+        } else if (strcmp(port, MICROPY_HW_CAN2_NAME) == 0) {
+            o->can_id = PYB_CAN_2;
         #endif
         } else {
             nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "CAN port %s does not exist", port));
diff --git a/stmhal/can.h b/stmhal/can.h
index b9d431e79..4d4b1bb83 100644
--- a/stmhal/can.h
+++ b/stmhal/can.h
@@ -27,12 +27,6 @@
 #define PYB_CAN_1 (1)
 #define PYB_CAN_2 (2)
 
-// aliases for pyboard
-#if defined(PYBV10)
-#define PYB_CAN_YA PYB_CAN_1 // CAN1 on RX,TX = Y3,Y4 = PB8,PB9
-#define PYB_CAN_YB PYB_CAN_2 // CAN2 on RX,TX = Y5,Y6 = PB12,PB13
-#endif
-
 extern const mp_obj_type_t pyb_can_type;
 
 void can_init0(void);
diff --git a/stmhal/uart.c b/stmhal/uart.c
index 676ccee48..e1357b1f6 100644
--- a/stmhal/uart.c
+++ b/stmhal/uart.c
@@ -504,16 +504,30 @@ STATIC mp_obj_t pyb_uart_make_new(mp_obj_t type_in, mp_uint_t n_args, mp_uint_t
     if (MP_OBJ_IS_STR(args[0])) {
         const char *port = mp_obj_str_get_str(args[0]);
         if (0) {
-#if defined(PYBV10)
-        } else if (strcmp(port, "XA") == 0) {
-            uart_id = PYB_UART_XA;
-        } else if (strcmp(port, "XB") == 0) {
-            uart_id = PYB_UART_XB;
-        } else if (strcmp(port, "YA") == 0) {
-            uart_id = PYB_UART_YA;
-        } else if (strcmp(port, "YB") == 0) {
-            uart_id = PYB_UART_YB;
-#endif
+        #ifdef MICROPY_HW_UART1_NAME
+        } else if (strcmp(port, MICROPY_HW_UART1_NAME) == 0) {
+            uart_id = PYB_UART_1;
+        #endif
+        #ifdef MICROPY_HW_UART2_NAME
+        } else if (strcmp(port, MICROPY_HW_UART2_NAME) == 0) {
+            uart_id = PYB_UART_2;
+        #endif
+        #ifdef MICROPY_HW_UART3_NAME
+        } else if (strcmp(port, MICROPY_HW_UART3_NAME) == 0) {
+            uart_id = PYB_UART_3;
+        #endif
+        #ifdef MICROPY_HW_UART4_NAME
+        } else if (strcmp(port, MICROPY_HW_UART4_NAME) == 0) {
+            uart_id = PYB_UART_4;
+        #endif
+        #ifdef MICROPY_HW_UART5_NAME
+        } else if (strcmp(port, MICROPY_HW_UART5_NAME) == 0) {
+            uart_id = PYB_UART_5;
+        #endif
+        #ifdef MICROPY_HW_UART6_NAME
+        } else if (strcmp(port, MICROPY_HW_UART6_NAME) == 0) {
+            uart_id = PYB_UART_6;
+        #endif
         } else {
             nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "UART(%s) does not exist", port));
         }
diff --git a/stmhal/uart.h b/stmhal/uart.h
index eb7721415..5b223c5c6 100644
--- a/stmhal/uart.h
+++ b/stmhal/uart.h
@@ -32,14 +32,6 @@ typedef enum {
     PYB_UART_4 = 4,
     PYB_UART_5 = 5,
     PYB_UART_6 = 6,
-
-#if defined(PYBV10)
-    PYB_UART_XA = 4, // UART4 on X1, X2 = PA0, PA1
-    PYB_UART_XB = 1, // USART1 on X9, X10 = PB6, PB7
-    PYB_UART_YA = 6, // USART6 on Y1, Y2 = PC6, PC7
-    PYB_UART_YB = 3, // USART3 on Y9, Y10 = PB10, PB11
-#endif
-
 } pyb_uart_t;
 
 typedef struct _pyb_uart_obj_t pyb_uart_obj_t;
-- 
GitLab