You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gn...@apache.org on 2020/06/30 18:47:01 UTC

[incubator-nuttx] 01/03: Expose xxx_caninitialize() correctly so it's usable in latedev init when there are multiple net devices

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

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

commit eca1011b1ef3aa770e1d92c4a9784e25b9f83084
Author: Peter van der Perk <pe...@nxp.com>
AuthorDate: Tue Jun 30 11:44:17 2020 +0200

    Expose xxx_caninitialize() correctly so it's usable in latedev init when there are multiple net devices
---
 arch/arm/src/kinetis/kinetis.h         |  2 +-
 arch/arm/src/s32k1xx/s32k1xx_flexcan.c | 24 ++++++++++++------------
 arch/arm/src/s32k1xx/s32k1xx_flexcan.h | 29 ++++++++++++++++++-----------
 3 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/arch/arm/src/kinetis/kinetis.h b/arch/arm/src/kinetis/kinetis.h
index cdabde5..5af8f8e 100644
--- a/arch/arm/src/kinetis/kinetis.h
+++ b/arch/arm/src/kinetis/kinetis.h
@@ -777,7 +777,7 @@ int kinetis_netinitialize(int intf);
  * Assumptions:
  *
  ************************************************************************************/
-#ifdef CONFIG_KINETIS_CAN
+#ifdef CONFIG_KINETIS_FLEXCAN
 int kinetis_caninitialize(int intf)
 #endif
 
diff --git a/arch/arm/src/s32k1xx/s32k1xx_flexcan.c b/arch/arm/src/s32k1xx/s32k1xx_flexcan.c
index a49480b..abc4c22 100644
--- a/arch/arm/src/s32k1xx/s32k1xx_flexcan.c
+++ b/arch/arm/src/s32k1xx/s32k1xx_flexcan.c
@@ -1698,14 +1698,14 @@ static void s32k1xx_reset(struct s32k1xx_driver_s *priv)
  ****************************************************************************/
 
 /****************************************************************************
- * Function: s32k1xx_netinitialize
+ * Function: s32k1xx_caninitialize
  *
  * Description:
- *   Initialize the Ethernet controller and driver
+ *   Initialize the CAN controller and driver
  *
  * Input Parameters:
- *   intf - In the case where there are multiple EMACs, this value
- *          identifies which EMAC is to be initialized.
+ *   intf - In the case where there are multiple CAN devices, this value
+ *          identifies which CAN device is to be initialized.
  *
  * Returned Value:
  *   OK on success; Negated errno on failure.
@@ -1714,7 +1714,7 @@ static void s32k1xx_reset(struct s32k1xx_driver_s *priv)
  *
  ****************************************************************************/
 
-int s32k1xx_netinitialize(int intf)
+int s32k1xx_caninitialize(int intf)
 {
   struct s32k1xx_driver_s *priv;
   int ret;
@@ -1894,10 +1894,10 @@ int s32k1xx_netinitialize(int intf)
  * Name: arm_netinitialize
  *
  * Description:
- *   Initialize the first network interface.  If there are more than one
- *   interface in the chip, then board-specific logic will have to provide
- *   this function to determine which, if any, Ethernet controllers should
- *   be initialized.
+ *   Initialize the enabled CAN device interfaces.  If there are more
+ *   different network devices in the chip, then board-specific logic will
+ *   have to provide this function to determine which, if any, network
+ *   devices should be initialized.
  *
  ****************************************************************************/
 
@@ -1905,15 +1905,15 @@ int s32k1xx_netinitialize(int intf)
 void arm_netinitialize(void)
 {
 #ifdef CONFIG_S32K1XX_FLEXCAN0
-  s32k1xx_netinitialize(0);
+  s32k1xx_caninitialize(0);
 #endif
 
 #ifdef CONFIG_S32K1XX_FLEXCAN1
-  s32k1xx_netinitialize(1);
+  s32k1xx_caninitialize(1);
 #endif
 
 #ifdef CONFIG_S32K1XX_FLEXCAN2
-  s32k1xx_netinitialize(2);
+  s32k1xx_caninitialize(2);
 #endif
 }
 #endif
diff --git a/arch/arm/src/s32k1xx/s32k1xx_flexcan.h b/arch/arm/src/s32k1xx/s32k1xx_flexcan.h
index 3b19332..cd763fc 100644
--- a/arch/arm/src/s32k1xx/s32k1xx_flexcan.h
+++ b/arch/arm/src/s32k1xx/s32k1xx_flexcan.h
@@ -65,14 +65,16 @@ extern "C"
 #define EXTERN extern
 #endif
 
+#if !defined(CONFIG_NETDEV_LATEINIT)
+
 /************************************************************************************
  * Function: arm_netinitialize
  *
  * Description:
- *   Initialize the first network interface.  If there are more than one
- *   interface in the chip, then board-specific logic will have to provide
- *   this function to determine which, if any, Ethernet controllers should
- *   be initialized.  Also prototyped in up_internal.h.
+ *   Initialize the enabled CAN device interfaces.  If there are more
+ *   different network devices in the chip, then board-specific logic will
+ *   have to provide this function to determine which, if any, network
+ *   devices should be initialized.
  *
  * Input Parameters:
  *   None
@@ -87,24 +89,29 @@ extern "C"
 
 void arm_netinitialize(void);
 
+#else
+
 /************************************************************************************
- * Function: s32k1xx_phy_boardinitialize
+ * Function: s32k1xx_caninitialize
  *
  * Description:
- *   Some boards require specialized initialization of the PHY before it can be
- *   used.  This may include such things as configuring GPIOs, resetting the PHY,
- *   etc.  If CONFIG_S32K1XX_FLEXCAN_PHYINIT is defined in the configuration then the
- *   board specific logic must provide s32k1xx_phyinitialize();  The i.MX RT Ethernet
- *   driver will call this function one time before it first uses the PHY.
+ *   Initialize the CAN controller and driver
  *
  * Input Parameters:
- *   intf - Always zero for now.
+ *   intf - In the case where there are multiple CAN devices, this value
+ *          identifies which CAN device is to be initialized.
  *
  * Returned Value:
  *   OK on success; Negated errno on failure.
  *
+ * Assumptions:
+ *
  ************************************************************************************/
 
+int s32k1xx_caninitialize(int intf);
+
+#endif
+
 #undef EXTERN
 #if defined(__cplusplus)
 }