mirror of
https://github.com/Dasharo/zephyr.git
synced 2026-03-06 14:57:20 -08:00
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:
committed by
Fabio Baltieri
parent
47f6048490
commit
ec75dc2232
@@ -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.
|
||||
|
||||
@@ -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, ®);
|
||||
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, ®);
|
||||
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, ®);
|
||||
if (err != 0) {
|
||||
return err;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user