[PATCH v3 05/15] can: grcan: Replace bit timing macros with literal values

Arun Muthusamy
2026-01-22T12:10:55Z

Refactor the bit timing constants in grcan_bittiming_const by replacing
macros with literal values.

Signed-off-by: Arun Muthusamy <arun.muthusamy@gaisler.com>
Signed-off-by: Daniel Hellstrom <daniel@gaisler.com>
---
drivers/net/can/grcan.c | 27 +++++++++------------------
1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/drivers/net/can/grcan.c b/drivers/net/can/grcan.c
index 538a9b4f82ab..f34ca558fa5d 100644
--- a/drivers/net/can/grcan.c
+++ b/drivers/net/can/grcan.c
@@ -36,6 +36,7 @@
#include <linux/of_irq.h>
#include <linux/clk.h>
#include <linux/dma-mapping.h>
+#include <linux/bitfield.h>

#define DRV_NAME "grcan"

@@ -93,16 +94,6 @@ struct grcan_registers {
(GRCAN_CONF_BPR | GRCAN_CONF_RSJ | GRCAN_CONF_PS1 \
| GRCAN_CONF_PS2 | GRCAN_CONF_SCALER)

-#define GRCAN_CONF_RSJ_MIN 1
-#define GRCAN_CONF_RSJ_MAX 4
-#define GRCAN_CONF_PS1_MIN 1
-#define GRCAN_CONF_PS1_MAX 15
-#define GRCAN_CONF_PS2_MIN 2
-#define GRCAN_CONF_PS2_MAX 8
-#define GRCAN_CONF_SCALER_MIN 0
-#define GRCAN_CONF_SCALER_MAX 255
-#define GRCAN_CONF_SCALER_INC 1
-
#define GRCAN_CONF_BPR_BIT 8
#define GRCAN_CONF_RSJ_BIT 12
#define GRCAN_CONF_PS1_BIT 20
@@ -392,14 +383,14 @@ static struct grcan_device_config grcan_module_config =

static const struct can_bittiming_const grcan_bittiming_const = {
.name = DRV_NAME,
- .tseg1_min = GRCAN_CONF_PS1_MIN + 1,
- .tseg1_max = GRCAN_CONF_PS1_MAX + 1,
- .tseg2_min = GRCAN_CONF_PS2_MIN,
- .tseg2_max = GRCAN_CONF_PS2_MAX,
- .sjw_max = GRCAN_CONF_RSJ_MAX,
- .brp_min = GRCAN_CONF_SCALER_MIN + 1,
- .brp_max = GRCAN_CONF_SCALER_MAX + 1,
- .brp_inc = GRCAN_CONF_SCALER_INC,
+ .tseg1_min = 2,
+ .tseg1_max = 16,
+ .tseg2_min = 2,
+ .tseg2_max = 8,
+ .sjw_max = 4,
+ .brp_min = 1,
+ .brp_max = 256,
+ .brp_inc = 1,
};

static int grcan_set_bittiming(struct net_device *dev)
--
2.51.0