drivers: can: can_mcp2515: fix BRP bits value

Fixes #33978.
8b6c1bd commit set 'presacaler' in BRP(Baud Rate Prescaler) bits.
It's wrong, because these bits from CNF1 register use 'prescaler - 1'.
MCP2515(DS20001801J) datasheet 'REGISTER 5-1: CNF1: CONFIGURATION
REGISTER 1 (ADDRESS: 2Ah)'.

Signed-off-by: Sergey Ustinov <originalustinov@gmail.com>
This commit is contained in:
Sergey Ustinov 2021-04-09 12:55:11 +03:00 committed by Carles Cufí
commit 73db443320

View file

@ -333,7 +333,8 @@ static int mcp2515_set_timing(const struct device *dev,
uint8_t reset_mode; uint8_t reset_mode;
/* CNF1; SJW<7:6> | BRP<5:0> */ /* CNF1; SJW<7:6> | BRP<5:0> */
uint8_t brp = timing->prescaler; __ASSERT(timing->prescaler > 0, "Prescaler should be bigger than zero");
uint8_t brp = timing->prescaler - 1;
const uint8_t sjw = (timing->sjw - 1) << 6; const uint8_t sjw = (timing->sjw - 1) << 6;
uint8_t cnf1 = sjw | brp; uint8_t cnf1 = sjw | brp;