Skip to content

Commit 9e7c9b8

Browse files
ppisamarckleinebudde
authored andcommitted
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 <[email protected]> Signed-off-by: Marc Kleine-Budde <[email protected]>
1 parent 4940eb5 commit 9e7c9b8

File tree

1 file changed

+28
-4
lines changed

1 file changed

+28
-4
lines changed

drivers/net/can/ctucanfd/ctucanfd_kregs.h

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
* CTU CAN FD IP Core
55
*
66
* Copyright (C) 2015-2018 Ondrej Ille <[email protected]> FEE CTU
7-
* Copyright (C) 2018-2021 Ondrej Ille <[email protected]> self-funded
7+
* Copyright (C) 2018-2022 Ondrej Ille <[email protected]> self-funded
88
* Copyright (C) 2018-2019 Martin Jerabek <[email protected]> FEE CTU
9-
* Copyright (C) 2018-2021 Pavel Pisa <[email protected]> FEE CTU/self-funded
9+
* Copyright (C) 2018-2022 Pavel Pisa <[email protected]> FEE CTU/self-funded
1010
*
1111
* Project advisors:
1212
* Jiri Novak <[email protected]>
@@ -64,9 +64,12 @@ enum ctu_can_fd_can_registers {
6464
CTUCANFD_RX_DATA = 0x6c,
6565
CTUCANFD_TX_STATUS = 0x70,
6666
CTUCANFD_TX_COMMAND = 0x74,
67+
CTUCANFD_TXTB_INFO = 0x76,
6768
CTUCANFD_TX_PRIORITY = 0x78,
6869
CTUCANFD_ERR_CAPT = 0x7c,
70+
CTUCANFD_RETR_CTR = 0x7d,
6971
CTUCANFD_ALC = 0x7e,
72+
CTUCANFD_TS_INFO = 0x7f,
7073
CTUCANFD_TRV_DELAY = 0x80,
7174
CTUCANFD_SSP_CFG = 0x82,
7275
CTUCANFD_RX_FR_CTR = 0x84,
@@ -102,8 +105,12 @@ enum ctu_can_fd_can_registers {
102105
#define REG_MODE_STM BIT(2)
103106
#define REG_MODE_AFM BIT(3)
104107
#define REG_MODE_FDE BIT(4)
108+
#define REG_MODE_TTTM BIT(5)
109+
#define REG_MODE_ROM BIT(6)
105110
#define REG_MODE_ACF BIT(7)
106111
#define REG_MODE_TSTM BIT(8)
112+
#define REG_MODE_RXBAM BIT(9)
113+
#define REG_MODE_SAM BIT(11)
107114
#define REG_MODE_RTRLE BIT(16)
108115
#define REG_MODE_RTRTH GENMASK(20, 17)
109116
#define REG_MODE_ILBP BIT(21)
@@ -123,8 +130,10 @@ enum ctu_can_fd_can_registers {
123130
#define REG_STATUS_EWL BIT(6)
124131
#define REG_STATUS_IDLE BIT(7)
125132
#define REG_STATUS_PEXS BIT(8)
133+
#define REG_STATUS_STCNT BIT(16)
126134

127135
/* COMMAND registers */
136+
#define REG_COMMAND_RXRPMV BIT(1)
128137
#define REG_COMMAND_RRB BIT(2)
129138
#define REG_COMMAND_CDO BIT(3)
130139
#define REG_COMMAND_ERCRST BIT(4)
@@ -263,27 +272,42 @@ enum ctu_can_fd_can_registers {
263272
#define REG_TX_STATUS_TX2S GENMASK(7, 4)
264273
#define REG_TX_STATUS_TX3S GENMASK(11, 8)
265274
#define REG_TX_STATUS_TX4S GENMASK(15, 12)
275+
#define REG_TX_STATUS_TX5S GENMASK(19, 16)
276+
#define REG_TX_STATUS_TX6S GENMASK(23, 20)
277+
#define REG_TX_STATUS_TX7S GENMASK(27, 24)
278+
#define REG_TX_STATUS_TX8S GENMASK(31, 28)
266279

267-
/* TX_COMMAND registers */
280+
/* TX_COMMAND TXTB_INFO registers */
268281
#define REG_TX_COMMAND_TXCE BIT(0)
269282
#define REG_TX_COMMAND_TXCR BIT(1)
270283
#define REG_TX_COMMAND_TXCA BIT(2)
271284
#define REG_TX_COMMAND_TXB1 BIT(8)
272285
#define REG_TX_COMMAND_TXB2 BIT(9)
273286
#define REG_TX_COMMAND_TXB3 BIT(10)
274287
#define REG_TX_COMMAND_TXB4 BIT(11)
288+
#define REG_TX_COMMAND_TXB5 BIT(12)
289+
#define REG_TX_COMMAND_TXB6 BIT(13)
290+
#define REG_TX_COMMAND_TXB7 BIT(14)
291+
#define REG_TX_COMMAND_TXB8 BIT(15)
292+
#define REG_TX_COMMAND_TXT_BUFFER_COUNT GENMASK(19, 16)
275293

276294
/* TX_PRIORITY registers */
277295
#define REG_TX_PRIORITY_TXT1P GENMASK(2, 0)
278296
#define REG_TX_PRIORITY_TXT2P GENMASK(6, 4)
279297
#define REG_TX_PRIORITY_TXT3P GENMASK(10, 8)
280298
#define REG_TX_PRIORITY_TXT4P GENMASK(14, 12)
299+
#define REG_TX_PRIORITY_TXT5P GENMASK(18, 16)
300+
#define REG_TX_PRIORITY_TXT6P GENMASK(22, 20)
301+
#define REG_TX_PRIORITY_TXT7P GENMASK(26, 24)
302+
#define REG_TX_PRIORITY_TXT8P GENMASK(30, 28)
281303

282-
/* ERR_CAPT ALC registers */
304+
/* ERR_CAPT RETR_CTR ALC TS_INFO registers */
283305
#define REG_ERR_CAPT_ERR_POS GENMASK(4, 0)
284306
#define REG_ERR_CAPT_ERR_TYPE GENMASK(7, 5)
307+
#define REG_ERR_CAPT_RETR_CTR_VAL GENMASK(11, 8)
285308
#define REG_ERR_CAPT_ALC_BIT GENMASK(20, 16)
286309
#define REG_ERR_CAPT_ALC_ID_FIELD GENMASK(23, 21)
310+
#define REG_ERR_CAPT_TS_BITS GENMASK(29, 24)
287311

288312
/* TRV_DELAY SSP_CFG registers */
289313
#define REG_TRV_DELAY_TRV_DELAY_VALUE GENMASK(6, 0)

0 commit comments

Comments
 (0)