From 86f6e9953eb4236a3da04eec475915ffd9e91a9c Mon Sep 17 00:00:00 2001 From: Javier Alonso Date: Thu, 6 Aug 2026 16:48:00 +0200 Subject: [PATCH 1/3] arch/s32k1xx: initializers clobbering rx_pin instead of enable_high The `rx_pin` configuration when `CONFIG_S32K1XX_FLEXCAN2` is defined is overwritten if `PIN_CAN2_ENABLE` is defined, breaking the flexcan config for S32K1 MCU. Additionally, the `.enable_high` configuration points to a non-defined constant/macro (looks like a legacy from the first driver definition). Based on regularly maintained drivers (such as s32k3), this was changed to `CAN2_ENABLE_OUT` Signed-off-by: Javier Alonso --- arch/arm/src/s32k1xx/s32k1xx_flexcan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/s32k1xx/s32k1xx_flexcan.c b/arch/arm/src/s32k1xx/s32k1xx_flexcan.c index 2e9beaa728528..15292eedeb5a9 100644 --- a/arch/arm/src/s32k1xx/s32k1xx_flexcan.c +++ b/arch/arm/src/s32k1xx/s32k1xx_flexcan.c @@ -273,11 +273,11 @@ static const struct flexcan_config_s s32k1xx_flexcan2_config = .tx_pin = PIN_CAN2_TX, .rx_pin = PIN_CAN2_RX, #ifdef PIN_CAN2_ENABLE - .enable_pin = PIN_CAN2_ENABLE, - .rx_pin = CAN2_ENABLE_HIGH, + .enable_pin = PIN_CAN2_ENABLE, + .rx_pin = CAN2_ENABLE_OUT, #else - .enable_pin = 0, - .rx_pin = 0, + .enable_pin = 0, + .enable_high = 0, #endif .bus_irq = S32K1XX_IRQ_CAN2_BUS, .error_irq = S32K1XX_IRQ_CAN2_ERROR, From 1eea747d6a368a07132c6c569040972cd42e2fcb Mon Sep 17 00:00:00 2001 From: Javier Alonso Date: Thu, 6 Aug 2026 16:58:37 +0200 Subject: [PATCH 2/3] arch/kinetis: initializers clobbering rx_pin instead of enable_high The `rx_pin` configuration when `CONFIG_KINETIS_FLEXCAN2` is defined is overwritten if `PIN_CAN2_ENABLE` is defined, breaking the flexcan config for Kinetis MCU. Additionally, the `.enable_high` configuration points to a non-defined constant/macro (looks like a legacy from the first driver definition). Based on regularly maintained drivers (such as s32k3), this was changed to `CAN2_ENABLE_OUT` Signed-off-by: Javier Alonso --- arch/arm/src/kinetis/kinetis_flexcan.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/arm/src/kinetis/kinetis_flexcan.c b/arch/arm/src/kinetis/kinetis_flexcan.c index 1f245718912f1..49aa7e64784fd 100644 --- a/arch/arm/src/kinetis/kinetis_flexcan.c +++ b/arch/arm/src/kinetis/kinetis_flexcan.c @@ -268,11 +268,11 @@ static const struct flexcan_config_s kinetis_flexcan2_config = .tx_pin = PIN_CAN2_TX, .rx_pin = PIN_CAN2_RX, #ifdef PIN_CAN2_ENABLE - .enable_pin = PIN_CAN2_ENABLE, - .rx_pin = CAN2_ENABLE_HIGH, + .enable_pin = PIN_CAN2_ENABLE, + .rx_pin = CAN2_ENABLE_OUT, #else - .enable_pin = 0, - .rx_pin = 0, + .enable_pin = 0, + .enable_high = 0, #endif .bus_irq = KINETIS_IRQ_CAN2_BUS, .error_irq = KINETIS_IRQ_CAN2_ERROR, From 96c505e1265ef61debca8d3c98fad74d9b1af034 Mon Sep 17 00:00:00 2001 From: Javier Alonso Date: Thu, 6 Aug 2026 17:03:39 +0200 Subject: [PATCH 3/3] arch/s32k3xx: initializers clobbering rx_pin instead of enable_high The `rx_pin` configuration when `CONFIG_S32K3XX_FLEXCAN2` is defined is overwritten if `PIN_CAN2_ENABLE` is defined, breaking the flexcan config for S32K3 MCU. Signed-off-by: Javier Alonso --- arch/arm/src/s32k3xx/s32k3xx_flexcan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/arch/arm/src/s32k3xx/s32k3xx_flexcan.c b/arch/arm/src/s32k3xx/s32k3xx_flexcan.c index e27d2fcc3778a..fe4b18d615151 100644 --- a/arch/arm/src/s32k3xx/s32k3xx_flexcan.c +++ b/arch/arm/src/s32k3xx/s32k3xx_flexcan.c @@ -305,11 +305,11 @@ static const struct flexcan_config_s s32k3xx_flexcan2_config = .rx_pin = PIN_CAN2_RX, .no_buffers = 64, #ifdef PIN_CAN2_ENABLE - .enable_pin = PIN_CAN2_ENABLE, + .enable_pin = PIN_CAN2_ENABLE, .enable_high = CAN2_ENABLE_OUT, #else - .enable_pin = 0, - .rx_pin = 0, + .enable_pin = 0, + .enable_high = 0, #endif #ifdef PIN_CAN2_STB .stb_pin = PIN_CAN2_STB,