This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit b606c17619f2f5ef64d3caa42cb28f9bd4428f97
Author: raiden00pl <[email protected]>
AuthorDate: Sun Oct 20 12:57:58 2024 +0200

    boards/arm/stm32f7: move CAN init logic to a common directory
    
    move CAN init logic to a common directory
---
 .../include/stm32_can_setup.h}                     |  68 +++++-------
 .../include/stm32_cansock_setup.h}                 |  68 +++++-------
 boards/arm/stm32f7/common/src/CMakeLists.txt       |   9 ++
 boards/arm/stm32f7/common/src/Make.defs            |   9 ++
 .../stm32_can.c => common/src/stm32_can_setup.c}   |   3 +-
 .../src/stm32_cansock_setup.c}                     |   2 +-
 .../stm32f7/nucleo-f722ze/configs/can/defconfig    |   1 +
 .../nucleo-f722ze/configs/cansock/defconfig        |   1 +
 boards/arm/stm32f7/nucleo-f722ze/src/Make.defs     |   9 --
 .../arm/stm32f7/nucleo-f722ze/src/nucleo-f722ze.h  |  16 ---
 .../arm/stm32f7/nucleo-f722ze/src/stm32_bringup.c  |   8 ++
 boards/arm/stm32f7/nucleo-f722ze/src/stm32_can.c   | 115 ---------------------
 .../stm32f7/nucleo-f746zg/configs/pysim/defconfig  |   1 +
 .../arm/stm32f7/nucleo-f746zg/src/CMakeLists.txt   |   9 --
 boards/arm/stm32f7/nucleo-f746zg/src/Make.defs     |   9 --
 .../arm/stm32f7/nucleo-f746zg/src/nucleo-f746zg.h  |  16 ---
 .../arm/stm32f7/nucleo-f746zg/src/stm32_bringup.c  |   8 ++
 .../arm/stm32f7/nucleo-f767zi/src/CMakeLists.txt   |   9 --
 boards/arm/stm32f7/nucleo-f767zi/src/Make.defs     |   9 --
 .../arm/stm32f7/nucleo-f767zi/src/nucleo-f767zi.h  |  16 ---
 .../arm/stm32f7/nucleo-f767zi/src/stm32_bringup.c  |   8 ++
 boards/arm/stm32f7/nucleo-f767zi/src/stm32_can.c   | 115 ---------------------
 22 files changed, 103 insertions(+), 406 deletions(-)

diff --git a/boards/arm/stm32f7/nucleo-f722ze/src/stm32_cansock.c 
b/boards/arm/stm32f7/common/include/stm32_can_setup.h
similarity index 63%
rename from boards/arm/stm32f7/nucleo-f722ze/src/stm32_cansock.c
rename to boards/arm/stm32f7/common/include/stm32_can_setup.h
index 5f5ababb2a..0646310788 100644
--- a/boards/arm/stm32f7/nucleo-f722ze/src/stm32_cansock.c
+++ b/boards/arm/stm32f7/common/include/stm32_can_setup.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32f7/nucleo-f722ze/src/stm32_cansock.c
+ * boards/arm/stm32f7/common/include/stm32_can_setup.h
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -18,66 +18,54 @@
  *
  ****************************************************************************/
 
+#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H
+#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H
+
 /****************************************************************************
  * Included Files
  ****************************************************************************/
 
 #include <nuttx/config.h>
 
-#include <debug.h>
-
-#include "stm32_can.h"
-
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
 
-/* Configuration ************************************************************/
-
-#if !defined(CONFIG_STM32F7_CAN1) && !defined(CONFIG_STM32F7_CAN2)
-#  error "No CAN is enable. Please eneable at least one CAN device"
-#endif
-
 /****************************************************************************
- * Public Functions
+ * Public Types
  ****************************************************************************/
 
 /****************************************************************************
- * Name: stm32_cansock_setup
- *
- * Description:
- *  Initialize CAN socket interface
- *
+ * Public Data
  ****************************************************************************/
 
-int stm32_cansock_setup(void)
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C"
 {
-  int ret = OK;
-
-  UNUSED(ret);
+#else
+#define EXTERN extern
+#endif
 
-#ifdef CONFIG_STM32F7_CAN1
-  /* Call stm32_caninitialize() to get an instance of the CAN interface */
+/****************************************************************************
+ * Inline Functions
+ ****************************************************************************/
 
-  ret = stm32_cansockinitialize(1);
-  if (ret < 0)
-    {
-      canerr("ERROR:  Failed to get CAN interface %d\n", ret);
-      goto errout;
-    }
-#endif
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
 
-#ifdef CONFIG_STM32F7_CAN2
-  /* Call stm32_caninitialize() to get an instance of the CAN interface */
+/****************************************************************************
+ * Name: stm32_can_setup
+ ****************************************************************************/
 
-  ret = stm32_cansockinitialize(2);
-  if (ret < 0)
-    {
-      canerr("ERROR:  Failed to get CAN interface %d\n", ret);
-      goto errout;
-    }
+#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
+int stm32_can_setup(void);
 #endif
 
-errout:
-  return ret;
+#undef EXTERN
+#ifdef __cplusplus
 }
+#endif
+
+#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CAN_SETUP_H */
diff --git a/boards/arm/stm32f7/nucleo-f746zg/src/stm32_cansock.c 
b/boards/arm/stm32f7/common/include/stm32_cansock_setup.h
similarity index 63%
rename from boards/arm/stm32f7/nucleo-f746zg/src/stm32_cansock.c
rename to boards/arm/stm32f7/common/include/stm32_cansock_setup.h
index 98452af5d8..800c4ed55d 100644
--- a/boards/arm/stm32f7/nucleo-f746zg/src/stm32_cansock.c
+++ b/boards/arm/stm32f7/common/include/stm32_cansock_setup.h
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32f7/nucleo-f746zg/src/stm32_cansock.c
+ * boards/arm/stm32f7/common/include/stm32_cansock_setup.h
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -18,66 +18,54 @@
  *
  ****************************************************************************/
 
+#ifndef __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H
+#define __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H
+
 /****************************************************************************
  * Included Files
  ****************************************************************************/
 
 #include <nuttx/config.h>
 
-#include <debug.h>
-
-#include "stm32_can.h"
-
 /****************************************************************************
  * Pre-processor Definitions
  ****************************************************************************/
 
-/* Configuration ************************************************************/
-
-#if !defined(CONFIG_STM32F7_CAN1) && !defined(CONFIG_STM32F7_CAN2)
-#  error "No CAN is enable. Please eneable at least one CAN device"
-#endif
-
 /****************************************************************************
- * Public Functions
+ * Public Types
  ****************************************************************************/
 
 /****************************************************************************
- * Name: stm32_cansock_setup
- *
- * Description:
- *  Initialize CAN socket interface
- *
+ * Public Data
  ****************************************************************************/
 
-int stm32_cansock_setup(void)
+#ifdef __cplusplus
+#define EXTERN extern "C"
+extern "C"
 {
-  int ret = OK;
-
-  UNUSED(ret);
+#else
+#define EXTERN extern
+#endif
 
-#ifdef CONFIG_STM32F7_CAN1
-  /* Call stm32_caninitialize() to get an instance of the CAN interface */
+/****************************************************************************
+ * Inline Functions
+ ****************************************************************************/
 
-  ret = stm32_cansockinitialize(1);
-  if (ret < 0)
-    {
-      canerr("ERROR:  Failed to get CAN interface %d\n", ret);
-      goto errout;
-    }
-#endif
+/****************************************************************************
+ * Public Function Prototypes
+ ****************************************************************************/
 
-#ifdef CONFIG_STM32F7_CAN2
-  /* Call stm32_caninitialize() to get an instance of the CAN interface */
+/****************************************************************************
+ * Name: stm32_cansock_setup
+ ****************************************************************************/
 
-  ret = stm32_cansockinitialize(2);
-  if (ret < 0)
-    {
-      canerr("ERROR:  Failed to get CAN interface %d\n", ret);
-      goto errout;
-    }
+#ifdef CONFIG_STM32F7_CAN_SOCKET
+int stm32_cansock_setup(void);
 #endif
 
-errout:
-  return ret;
+#undef EXTERN
+#ifdef __cplusplus
 }
+#endif
+
+#endif /* __BOARDS_ARM_STM32F7_COMMON_INCLUDE_STM32_CANSOCK_SETUP_H */
diff --git a/boards/arm/stm32f7/common/src/CMakeLists.txt 
b/boards/arm/stm32f7/common/src/CMakeLists.txt
index f2b17e2c09..61ec6b8d57 100644
--- a/boards/arm/stm32f7/common/src/CMakeLists.txt
+++ b/boards/arm/stm32f7/common/src/CMakeLists.txt
@@ -32,4 +32,13 @@ if(CONFIG_AUDIO_CS4344)
   list(APPEND SRCS stm32_cs4344.c)
 endif()
 
+if(CONFIG_STM32F7_CAN)
+  if(CONFIG_STM32F7_CAN_CHARDRIVER)
+    list(APPEND SRCS stm32_can.c)
+  endif()
+  if(CONFIG_STM32F7_CAN_SOCKET)
+    list(APPEND SRCS stm32_cansock.c)
+  endif()
+endif()
+
 target_sources(board PRIVATE ${SRCS})
diff --git a/boards/arm/stm32f7/common/src/Make.defs 
b/boards/arm/stm32f7/common/src/Make.defs
index ae0d1bfe73..15455395ee 100644
--- a/boards/arm/stm32f7/common/src/Make.defs
+++ b/boards/arm/stm32f7/common/src/Make.defs
@@ -32,6 +32,15 @@ ifeq ($(CONFIG_AUDIO_CS4344),y)
   CSRCS += stm32_cs4344.c
 endif
 
+ifeq ($(CONFIG_STM32F7_CAN),y)
+ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
+CSRCS += stm32_can_setup.c
+endif
+ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
+CSRCS += stm32_cansock_setup.c
+endif
+endif
+
 DEPPATH += --dep-path src
 VPATH += :src
 CFLAGS += 
${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)src
diff --git a/boards/arm/stm32f7/nucleo-f746zg/src/stm32_can.c 
b/boards/arm/stm32f7/common/src/stm32_can_setup.c
similarity index 97%
rename from boards/arm/stm32f7/nucleo-f746zg/src/stm32_can.c
rename to boards/arm/stm32f7/common/src/stm32_can_setup.c
index 8b4561de29..6593872876 100644
--- a/boards/arm/stm32f7/nucleo-f746zg/src/stm32_can.c
+++ b/boards/arm/stm32f7/common/src/stm32_can_setup.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32f7/nucleo-f746zg/src/stm32_can.c
+ * boards/arm/stm32f7/common/src/stm32_can_setup.c
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -31,7 +31,6 @@
 #include <nuttx/can/can.h>
 
 #include "stm32_can.h"
-#include "nucleo-f746zg.h"
 
 #ifdef CONFIG_CAN
 
diff --git a/boards/arm/stm32f7/nucleo-f767zi/src/stm32_cansock.c 
b/boards/arm/stm32f7/common/src/stm32_cansock_setup.c
similarity index 97%
rename from boards/arm/stm32f7/nucleo-f767zi/src/stm32_cansock.c
rename to boards/arm/stm32f7/common/src/stm32_cansock_setup.c
index 72bde95d4b..a88059661b 100644
--- a/boards/arm/stm32f7/nucleo-f767zi/src/stm32_cansock.c
+++ b/boards/arm/stm32f7/common/src/stm32_cansock_setup.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * boards/arm/stm32f7/nucleo-f767zi/src/stm32_cansock.c
+ * boards/arm/stm32f7/common/src/stm32_cansock_setup.c
  *
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
diff --git a/boards/arm/stm32f7/nucleo-f722ze/configs/can/defconfig 
b/boards/arm/stm32f7/nucleo-f722ze/configs/can/defconfig
index 4f9ee4d9de..b960a5907c 100644
--- a/boards/arm/stm32f7/nucleo-f722ze/configs/can/defconfig
+++ b/boards/arm/stm32f7/nucleo-f722ze/configs/can/defconfig
@@ -8,6 +8,7 @@
 # CONFIG_ARCH_FPU is not set
 # CONFIG_STM32F7_USE_LEGACY_PINMAP is not set
 CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD_COMMON=y
 CONFIG_ARCH_BOARD="nucleo-f722ze"
 CONFIG_ARCH_BOARD_NUCLEO_F722ZE=y
 CONFIG_ARCH_BUTTONS=y
diff --git a/boards/arm/stm32f7/nucleo-f722ze/configs/cansock/defconfig 
b/boards/arm/stm32f7/nucleo-f722ze/configs/cansock/defconfig
index 4ca8520da5..532251939f 100644
--- a/boards/arm/stm32f7/nucleo-f722ze/configs/cansock/defconfig
+++ b/boards/arm/stm32f7/nucleo-f722ze/configs/cansock/defconfig
@@ -10,6 +10,7 @@
 # CONFIG_NET_IPv4 is not set
 # CONFIG_STM32F7_USE_LEGACY_PINMAP is not set
 CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD_COMMON=y
 CONFIG_ARCH_BOARD="nucleo-f722ze"
 CONFIG_ARCH_BOARD_NUCLEO_F722ZE=y
 CONFIG_ARCH_BUTTONS=y
diff --git a/boards/arm/stm32f7/nucleo-f722ze/src/Make.defs 
b/boards/arm/stm32f7/nucleo-f722ze/src/Make.defs
index 8399eb73e7..2c6e6ac046 100644
--- a/boards/arm/stm32f7/nucleo-f722ze/src/Make.defs
+++ b/boards/arm/stm32f7/nucleo-f722ze/src/Make.defs
@@ -76,15 +76,6 @@ ifeq ($(CONFIG_SENSORS_QENCODER),y)
 CSRCS += stm32_qencoder.c
 endif
 
-ifeq ($(CONFIG_STM32F7_CAN),y)
-ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
-CSRCS += stm32_can.c
-endif
-ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
-CSRCS += stm32_cansock.c
-endif
-endif
-
 ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
 CSRCS += stm32_composite.c
 endif
diff --git a/boards/arm/stm32f7/nucleo-f722ze/src/nucleo-f722ze.h 
b/boards/arm/stm32f7/nucleo-f722ze/src/nucleo-f722ze.h
index 327476248e..5b45185c3d 100644
--- a/boards/arm/stm32f7/nucleo-f722ze/src/nucleo-f722ze.h
+++ b/boards/arm/stm32f7/nucleo-f722ze/src/nucleo-f722ze.h
@@ -325,22 +325,6 @@ int stm32_bbsram_int(void);
 int stm32_qencoder_initialize(const char *devpath, int timer);
 #endif
 
-/****************************************************************************
- * Name: stm32_can_setup
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
-int stm32_can_setup(void);
-#endif
-
-/****************************************************************************
- * Name: stm32_cansock_setup
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN_SOCKET
-int stm32_cansock_setup(void);
-#endif
-
 /****************************************************************************
  * Name: stm32f7_gpio_initialize
  ****************************************************************************/
diff --git a/boards/arm/stm32f7/nucleo-f722ze/src/stm32_bringup.c 
b/boards/arm/stm32f7/nucleo-f722ze/src/stm32_bringup.c
index e961791581..33c883333f 100644
--- a/boards/arm/stm32f7/nucleo-f722ze/src/stm32_bringup.c
+++ b/boards/arm/stm32f7/nucleo-f722ze/src/stm32_bringup.c
@@ -38,6 +38,14 @@
 
 #include "stm32_i2c.h"
 
+#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
+#  include "stm32_can_setup.h"
+#endif
+
+#ifdef CONFIG_STM32F7_CAN_SOCKET
+#  include "stm32_cansock_setup.h"
+#endif
+
 #ifdef CONFIG_STM32_ROMFS
 #include "stm32_romfs.h"
 #endif
diff --git a/boards/arm/stm32f7/nucleo-f722ze/src/stm32_can.c 
b/boards/arm/stm32f7/nucleo-f722ze/src/stm32_can.c
deleted file mode 100644
index 99119a88c7..0000000000
--- a/boards/arm/stm32f7/nucleo-f722ze/src/stm32_can.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
- * boards/arm/stm32f7/nucleo-f722ze/src/stm32_can.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <errno.h>
-#include <debug.h>
-
-#include <nuttx/can/can.h>
-
-#include "stm32_can.h"
-#include "nucleo-f722ze.h"
-
-#ifdef CONFIG_CAN
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN1
-#  define CAN_PORT 1
-#else
-#  define CAN_PORT 2
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: stm32_can_setup
- *
- * Description:
- *  Initialize CAN and register the CAN device
- *
- ****************************************************************************/
-
-int stm32_can_setup(void)
-{
-#if defined(CONFIG_STM32F7_CAN1)
-  struct can_dev_s *can;
-  int ret;
-
-  /* Call stm32f7can_initialize() to get an instance of the CAN interface */
-
-  can = stm32_caninitialize(CAN_PORT);
-  if (can == NULL)
-    {
-      canerr("ERROR: Failed to get CAN interface\n");
-      return -ENODEV;
-    }
-
-  /* Register the CAN driver at "/dev/can0" */
-
-  ret = can_register("/dev/can0", can);
-  if (ret < 0)
-    {
-      canerr("ERROR: can_register failed: %d\n", ret);
-      return ret;
-    }
-
-  return OK;
-#endif
-
-#if defined(CONFIG_STM32F7_CAN2)
-  struct can_dev_s *can;
-  int ret;
-
-  /* Call stm32f7can_initialize() to get an instance of the CAN interface */
-
-  can = stm32_caninitialize(CAN_PORT);
-  if (can == NULL)
-    {
-      canerr("ERROR: Failed to get CAN interface\n");
-      return -ENODEV;
-    }
-
-  /* Register the CAN driver at "/dev/can1" */
-
-  ret = can_register("/dev/can1", can);
-  if (ret < 0)
-    {
-      canerr("ERROR: can_register failed: %d\n", ret);
-      return ret;
-    }
-
-  return OK;
-#else
-  return -ENODEV;
-#endif
-}
-
-#endif /* CONFIG_CAN */
diff --git a/boards/arm/stm32f7/nucleo-f746zg/configs/pysim/defconfig 
b/boards/arm/stm32f7/nucleo-f746zg/configs/pysim/defconfig
index 6536eda075..88d1b89769 100644
--- a/boards/arm/stm32f7/nucleo-f746zg/configs/pysim/defconfig
+++ b/boards/arm/stm32f7/nucleo-f746zg/configs/pysim/defconfig
@@ -12,6 +12,7 @@ CONFIG_ADC=y
 CONFIG_ADC_FIFOSIZE=16
 CONFIG_ANALOG=y
 CONFIG_ARCH="arm"
+CONFIG_ARCH_BOARD_COMMON=y
 CONFIG_ARCH_BOARD="nucleo-f746zg"
 CONFIG_ARCH_BOARD_NUCLEO_F746ZG=y
 CONFIG_ARCH_BUTTONS=y
diff --git a/boards/arm/stm32f7/nucleo-f746zg/src/CMakeLists.txt 
b/boards/arm/stm32f7/nucleo-f746zg/src/CMakeLists.txt
index 87e7107985..a5e418b383 100644
--- a/boards/arm/stm32f7/nucleo-f746zg/src/CMakeLists.txt
+++ b/boards/arm/stm32f7/nucleo-f746zg/src/CMakeLists.txt
@@ -74,15 +74,6 @@ if(CONFIG_SENSORS_QENCODER)
   list(APPEND SRCS stm32_qencoder.c)
 endif()
 
-if(CONFIG_STM32F7_CAN)
-  if(CONFIG_STM32F7_CAN_CHARDRIVER)
-    list(APPEND SRCS stm32_can.c)
-  endif()
-  if(CONFIG_STM32F7_CAN_SOCKET)
-    list(APPEND SRCS stm32_cansock.c)
-  endif()
-endif()
-
 if(CONFIG_USBDEV_COMPOSITE)
   list(APPEND SRCS stm32_composite.c)
 endif()
diff --git a/boards/arm/stm32f7/nucleo-f746zg/src/Make.defs 
b/boards/arm/stm32f7/nucleo-f746zg/src/Make.defs
index cfa460bb76..ab7e5a4213 100644
--- a/boards/arm/stm32f7/nucleo-f746zg/src/Make.defs
+++ b/boards/arm/stm32f7/nucleo-f746zg/src/Make.defs
@@ -76,15 +76,6 @@ ifeq ($(CONFIG_SENSORS_QENCODER),y)
 CSRCS += stm32_qencoder.c
 endif
 
-ifeq ($(CONFIG_STM32F7_CAN),y)
-ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
-CSRCS += stm32_can.c
-endif
-ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
-CSRCS += stm32_cansock.c
-endif
-endif
-
 ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
 CSRCS += stm32_composite.c
 endif
diff --git a/boards/arm/stm32f7/nucleo-f746zg/src/nucleo-f746zg.h 
b/boards/arm/stm32f7/nucleo-f746zg/src/nucleo-f746zg.h
index 5ed7b8cc22..131bcb041b 100644
--- a/boards/arm/stm32f7/nucleo-f746zg/src/nucleo-f746zg.h
+++ b/boards/arm/stm32f7/nucleo-f746zg/src/nucleo-f746zg.h
@@ -325,22 +325,6 @@ int stm32_bbsram_int(void);
 int stm32_qencoder_initialize(const char *devpath, int timer);
 #endif
 
-/****************************************************************************
- * Name: stm32_can_setup
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
-int stm32_can_setup(void);
-#endif
-
-/****************************************************************************
- * Name: stm32_cansock_setup
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN_SOCKET
-int stm32_cansock_setup(void);
-#endif
-
 /****************************************************************************
  * Name: stm32f7_gpio_initialize
  ****************************************************************************/
diff --git a/boards/arm/stm32f7/nucleo-f746zg/src/stm32_bringup.c 
b/boards/arm/stm32f7/nucleo-f746zg/src/stm32_bringup.c
index b58aba9db6..aff3bb55c0 100644
--- a/boards/arm/stm32f7/nucleo-f746zg/src/stm32_bringup.c
+++ b/boards/arm/stm32f7/nucleo-f746zg/src/stm32_bringup.c
@@ -38,6 +38,14 @@
 
 #include "stm32_i2c.h"
 
+#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
+#  include "stm32_can_setup.h"
+#endif
+
+#ifdef CONFIG_STM32F7_CAN_SOCKET
+#  include "stm32_cansock_setup.h"
+#endif
+
 #ifdef CONFIG_STM32_ROMFS
 #include "stm32_romfs.h"
 #endif
diff --git a/boards/arm/stm32f7/nucleo-f767zi/src/CMakeLists.txt 
b/boards/arm/stm32f7/nucleo-f767zi/src/CMakeLists.txt
index 1591679715..73815d85c5 100644
--- a/boards/arm/stm32f7/nucleo-f767zi/src/CMakeLists.txt
+++ b/boards/arm/stm32f7/nucleo-f767zi/src/CMakeLists.txt
@@ -74,15 +74,6 @@ if(CONFIG_SENSORS_QENCODER)
   list(APPEND SRCS stm32_qencoder.c)
 endif()
 
-if(CONFIG_STM32F7_CAN)
-  if(CONFIG_STM32F7_CAN_CHARDRIVER)
-    list(APPEND SRCS stm32_can.c)
-  endif()
-  if(CONFIG_STM32F7_CAN_SOCKET)
-    list(APPEND SRCS stm32_cansock.c)
-  endif()
-endif()
-
 if(CONFIG_USBDEV_COMPOSITE)
   list(APPEND SRCS stm32_composite.c)
 endif()
diff --git a/boards/arm/stm32f7/nucleo-f767zi/src/Make.defs 
b/boards/arm/stm32f7/nucleo-f767zi/src/Make.defs
index b345afc6a4..bc0f0db9e4 100644
--- a/boards/arm/stm32f7/nucleo-f767zi/src/Make.defs
+++ b/boards/arm/stm32f7/nucleo-f767zi/src/Make.defs
@@ -76,15 +76,6 @@ ifeq ($(CONFIG_SENSORS_QENCODER),y)
 CSRCS += stm32_qencoder.c
 endif
 
-ifeq ($(CONFIG_STM32F7_CAN),y)
-ifeq ($(CONFIG_STM32F7_CAN_CHARDRIVER),y)
-CSRCS += stm32_can.c
-endif
-ifeq ($(CONFIG_STM32F7_CAN_SOCKET),y)
-CSRCS += stm32_cansock.c
-endif
-endif
-
 ifeq ($(CONFIG_USBDEV_COMPOSITE),y)
 CSRCS += stm32_composite.c
 endif
diff --git a/boards/arm/stm32f7/nucleo-f767zi/src/nucleo-f767zi.h 
b/boards/arm/stm32f7/nucleo-f767zi/src/nucleo-f767zi.h
index d7887943bf..f91291702a 100644
--- a/boards/arm/stm32f7/nucleo-f767zi/src/nucleo-f767zi.h
+++ b/boards/arm/stm32f7/nucleo-f767zi/src/nucleo-f767zi.h
@@ -325,22 +325,6 @@ int stm32_bbsram_int(void);
 int stm32_qencoder_initialize(const char *devpath, int timer);
 #endif
 
-/****************************************************************************
- * Name: stm32_can_setup
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
-int stm32_can_setup(void);
-#endif
-
-/****************************************************************************
- * Name: stm32_cansock_setup
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN_SOCKET
-int stm32_cansock_setup(void);
-#endif
-
 /****************************************************************************
  * Name: stm32f7_gpio_initialize
  ****************************************************************************/
diff --git a/boards/arm/stm32f7/nucleo-f767zi/src/stm32_bringup.c 
b/boards/arm/stm32f7/nucleo-f767zi/src/stm32_bringup.c
index 9e36235fd9..a6942a4f9a 100644
--- a/boards/arm/stm32f7/nucleo-f767zi/src/stm32_bringup.c
+++ b/boards/arm/stm32f7/nucleo-f767zi/src/stm32_bringup.c
@@ -38,6 +38,14 @@
 
 #include "stm32_i2c.h"
 
+#ifdef CONFIG_STM32F7_CAN_CHARDRIVER
+#  include "stm32_can_setup.h"
+#endif
+
+#ifdef CONFIG_STM32F7_CAN_SOCKET
+#  include "stm32_cansock_setup.h"
+#endif
+
 #ifdef CONFIG_STM32_ROMFS
 #include "stm32_romfs.h"
 #endif
diff --git a/boards/arm/stm32f7/nucleo-f767zi/src/stm32_can.c 
b/boards/arm/stm32f7/nucleo-f767zi/src/stm32_can.c
deleted file mode 100644
index fa067d6311..0000000000
--- a/boards/arm/stm32f7/nucleo-f767zi/src/stm32_can.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/****************************************************************************
- * boards/arm/stm32f7/nucleo-f767zi/src/stm32_can.c
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.  The
- * ASF licenses this file to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
- * License for the specific language governing permissions and limitations
- * under the License.
- *
- ****************************************************************************/
-
-/****************************************************************************
- * Included Files
- ****************************************************************************/
-
-#include <nuttx/config.h>
-
-#include <stdbool.h>
-#include <errno.h>
-#include <debug.h>
-
-#include <nuttx/can/can.h>
-
-#include "stm32_can.h"
-#include "nucleo-f767zi.h"
-
-#ifdef CONFIG_CAN
-
-/****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
-
-#ifdef CONFIG_STM32F7_CAN1
-#  define CAN_PORT 1
-#else
-#  define CAN_PORT 2
-#endif
-
-/****************************************************************************
- * Public Functions
- ****************************************************************************/
-
-/****************************************************************************
- * Name: stm32_can_setup
- *
- * Description:
- *  Initialize CAN and register the CAN device
- *
- ****************************************************************************/
-
-int stm32_can_setup(void)
-{
-#if defined(CONFIG_STM32F7_CAN1)
-  struct can_dev_s *can;
-  int ret;
-
-  /* Call stm32f7can_initialize() to get an instance of the CAN interface */
-
-  can = stm32_caninitialize(CAN_PORT);
-  if (can == NULL)
-    {
-      canerr("ERROR: Failed to get CAN interface\n");
-      return -ENODEV;
-    }
-
-  /* Register the CAN driver at "/dev/can0" */
-
-  ret = can_register("/dev/can0", can);
-  if (ret < 0)
-    {
-      canerr("ERROR: can_register failed: %d\n", ret);
-      return ret;
-    }
-
-  return OK;
-#endif
-
-#if defined(CONFIG_STM32F7_CAN2)
-  struct can_dev_s *can;
-  int ret;
-
-  /* Call stm32f7can_initialize() to get an instance of the CAN interface */
-
-  can = stm32_caninitialize(CAN_PORT);
-  if (can == NULL)
-    {
-      canerr("ERROR: Failed to get CAN interface\n");
-      return -ENODEV;
-    }
-
-  /* Register the CAN driver at "/dev/can1" */
-
-  ret = can_register("/dev/can1", can);
-  if (ret < 0)
-    {
-      canerr("ERROR: can_register failed: %d\n", ret);
-      return ret;
-    }
-
-  return OK;
-#else
-  return -ENODEV;
-#endif
-}
-
-#endif /* CONFIG_CAN */

Reply via email to