]> git.baikalelectronics.ru Git - kernel.git/commit
can: ctucanfd: Update CTU CAN FD IP core registers to match version 3.x.
authorPavel Pisa <pisa@cmp.felk.cvut.cz>
Mon, 18 Jul 2022 10:26:21 +0000 (12:26 +0200)
committerMarc Kleine-Budde <mkl@pengutronix.de>
Tue, 19 Jul 2022 18:57:46 +0000 (20:57 +0200)
commit08c54a82db1fc5600c23528355f04b31fe49ead4
tree6684474267057c830b1cae6b5ab568513c844faf
parent35be7c4131b0367a46c9799657d391ca6f54c3ba
can: ctucanfd: Update CTU CAN FD IP core registers to match version 3.x.

The update is compatible/pure extension of 2.x IP core version

 - new option for 2, 4, or 8 Tx buffers option during synthesis.
   The 2.x version has fixed 4 Tx buffers. 3.x version default
   is 4 as well
 - new REG_TX_COMMAND_TXT_BUFFER_COUNT provides synthesis
   choice. When read as 0 assume 2.x core with fixed 4 Tx buffers.
 - new REG_ERR_CAPT_TS_BITS field to provide most significant
   active/implemented timestamp bit. For 2.x read as zero,
   assume value 63 is such case for 64 bit counter.
 - new REG_MODE_RXBAM bit which controls automatic advance
   to next word after Rx FIFO register read. Bit is set
   to 1 by default after the core reset (REG_MODE_RST)
   and value 1 has to be preserved for the normal ctucanfd
   Linux driver operation. Even preceding driver version
   resets core and then modifies only known/required MODE
   register bits so backward and forward compatibility is
   ensured.

See complete datasheet for time-triggered and other
updated capabilities

  http://canbus.pages.fel.cvut.cz/ctucanfd_ip_core/doc/Datasheet.pdf

The fields related to ongoing Ondrej Ille's work
on fault tolerant version with parity protected buffers
and FIFOs are not included for now. Their inclusion will
be considered when design is settled and tested.

Link: https://lore.kernel.org/all/14a98ed1829121f0f3bde784f1aa533bc3cc7fe0.1658139843.git.pisa@cmp.felk.cvut.cz
Signed-off-by: Pavel Pisa <pisa@cmp.felk.cvut.cz>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
drivers/net/can/ctucanfd/ctucanfd_kregs.h