drivers: can: mcan: remove broken transmitter delay compensation support

Remove broken support for Transmitter Delay Compensation from the Bosch
M_CAN backend driver.

Even if this was enabled via Kconfig, the TDC bit in the DBTP register set
during driver initialization is overwritten in can_mcan_set_timing_data(),
turning TDC off.

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This commit is contained in:
Henrik Brix Andersen
2024-03-10 18:07:26 +01:00
committed by Fabio Baltieri
parent 47f6048490
commit ec75dc2232
3 changed files with 2 additions and 45 deletions
+2 -15
View File
@@ -1,4 +1,4 @@
# Bosch m_can configuration options
# Bosch M_CAN configuration options
# Copyright (c) 2020 Alexander Wachter
# SPDX-License-Identifier: Apache-2.0
@@ -6,17 +6,4 @@
config CAN_MCAN
bool
help
Enable Bosch m_can driver.
This driver supports the Bosch m_can IP. This IP is built into the
STM32G4, STM32G0, STM32H7, and the Microchip SAM controllers with
CAN FD.
if CAN_MCAN
config CAN_DELAY_COMP
bool "Transceiver delay compensation"
default y
help
Enable the automatic transceiver delay compensation.
endif #CAN_MCAN
Enable the Bosch M_CAN CAN IP module driver backend.
-26
View File
@@ -1427,32 +1427,6 @@ int can_mcan_init(const struct device *dev)
return err;
}
#if defined(CONFIG_CAN_DELAY_COMP) && defined(CONFIG_CAN_FD_MODE)
err = can_mcan_read_reg(dev, CAN_MCAN_DBTP, &reg);
if (err != 0) {
return err;
}
reg |= CAN_MCAN_DBTP_TDC;
err = can_mcan_write_reg(dev, CAN_MCAN_DBTP, reg);
if (err != 0) {
return err;
}
err = can_mcan_read_reg(dev, CAN_MCAN_TDCR, &reg);
if (err != 0) {
return err;
}
reg |= FIELD_PREP(CAN_MCAN_TDCR_TDCO, config->tx_delay_comp_offset);
err = can_mcan_write_reg(dev, CAN_MCAN_TDCR, reg);
if (err != 0) {
return err;
}
#endif /* defined(CONFIG_CAN_DELAY_COMP) && defined(CONFIG_CAN_FD_MODE) */
err = can_mcan_read_reg(dev, CAN_MCAN_GFC, &reg);
if (err != 0) {
return err;
-4
View File
@@ -1237,9 +1237,6 @@ struct can_mcan_config {
uint16_t mram_elements[CAN_MCAN_MRAM_CFG_NUM_CELLS];
uint16_t mram_offsets[CAN_MCAN_MRAM_CFG_NUM_CELLS];
size_t mram_size;
#ifdef CONFIG_CAN_FD_MODE
uint8_t tx_delay_comp_offset;
#endif
const void *custom;
};
@@ -1300,7 +1297,6 @@ struct can_mcan_config {
.mram_elements = CAN_MCAN_DT_MRAM_ELEMENTS_GET(node_id), \
.mram_offsets = CAN_MCAN_DT_MRAM_OFFSETS_GET(node_id), \
.mram_size = CAN_MCAN_DT_MRAM_ELEMENTS_SIZE(node_id), \
.tx_delay_comp_offset = DT_PROP(node_id, tx_delay_comp_offset), \
.custom = _custom, \
}
#else /* CONFIG_CAN_FD_MODE */