Skip to content

Commit 9e1cd0d

Browse files
Jimmy Assarssonmarckleinebudde
authored andcommitted
can: kvaser_usb: leaf: Replace kvaser_usb_leaf_m32c_dev_cfg with kvaser_usb_leaf_m32c_dev_cfg_{16,24,32}mhz
Add new struct kvaser_usb_dev_cfg constants, kvaser_usb_leaf_m32c_dev_cfg_{16,24,32}mhz, for M32C based leaf devices. Note that the bittiming parameters are always calculated for 16MHz clock, while the timestamps are in the actual clock frequency of the device. Signed-off-by: Jimmy Assarsson <[email protected]> Reviewed-by: Vincent Mailhol <[email protected]> Link: https://lore.kernel.org/all/[email protected] Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent dcc8c20 commit 9e1cd0d

File tree

1 file changed

+30
-3
lines changed

1 file changed

+30
-3
lines changed

drivers/net/can/usb/kvaser_usb/kvaser_usb_leaf.c

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -471,11 +471,27 @@ static const struct kvaser_usb_dev_cfg kvaser_usb_leaf_usbcan_dev_cfg = {
471471
.bittiming_const = &kvaser_usb_leaf_m16c_bittiming_const,
472472
};
473473

474-
static const struct kvaser_usb_dev_cfg kvaser_usb_leaf_m32c_dev_cfg = {
474+
static const struct kvaser_usb_dev_cfg kvaser_usb_leaf_m32c_dev_cfg_16mhz = {
475475
.clock = {
476476
.freq = 16 * MEGA /* Hz */,
477477
},
478-
.timestamp_freq = 1,
478+
.timestamp_freq = 16,
479+
.bittiming_const = &kvaser_usb_leaf_m32c_bittiming_const,
480+
};
481+
482+
static const struct kvaser_usb_dev_cfg kvaser_usb_leaf_m32c_dev_cfg_24mhz = {
483+
.clock = {
484+
.freq = 16 * MEGA /* Hz */,
485+
},
486+
.timestamp_freq = 24,
487+
.bittiming_const = &kvaser_usb_leaf_m32c_bittiming_const,
488+
};
489+
490+
static const struct kvaser_usb_dev_cfg kvaser_usb_leaf_m32c_dev_cfg_32mhz = {
491+
.clock = {
492+
.freq = 16 * MEGA /* Hz */,
493+
},
494+
.timestamp_freq = 32,
479495
.bittiming_const = &kvaser_usb_leaf_m32c_bittiming_const,
480496
};
481497

@@ -686,8 +702,19 @@ static void kvaser_usb_leaf_get_software_info_leaf(struct kvaser_usb *dev,
686702
if (dev->driver_info->quirks & KVASER_USB_QUIRK_IGNORE_CLK_FREQ) {
687703
/* Firmware expects bittiming parameters calculated for 16MHz
688704
* clock, regardless of the actual clock
705+
* Though, the reported freq is used for timestamps
689706
*/
690-
dev->cfg = &kvaser_usb_leaf_m32c_dev_cfg;
707+
switch (sw_options & KVASER_USB_LEAF_SWOPTION_FREQ_MASK) {
708+
case KVASER_USB_LEAF_SWOPTION_FREQ_16_MHZ_CLK:
709+
dev->cfg = &kvaser_usb_leaf_m32c_dev_cfg_16mhz;
710+
break;
711+
case KVASER_USB_LEAF_SWOPTION_FREQ_24_MHZ_CLK:
712+
dev->cfg = &kvaser_usb_leaf_m32c_dev_cfg_24mhz;
713+
break;
714+
case KVASER_USB_LEAF_SWOPTION_FREQ_32_MHZ_CLK:
715+
dev->cfg = &kvaser_usb_leaf_m32c_dev_cfg_32mhz;
716+
break;
717+
}
691718
} else {
692719
switch (sw_options & KVASER_USB_LEAF_SWOPTION_FREQ_MASK) {
693720
case KVASER_USB_LEAF_SWOPTION_FREQ_16_MHZ_CLK:

0 commit comments

Comments
 (0)