drivers/net/can/ctucanfd/ctucanfd_kregs.h

Source file repositories/reference/linux-study-clean/drivers/net/can/ctucanfd/ctucanfd_kregs.h

File Facts

System
Linux kernel
Corpus path
drivers/net/can/ctucanfd/ctucanfd_kregs.h
Extension
.h
Size
11724 bytes
Lines
350
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __CTU_CAN_FD_CAN_FD_REGISTER_MAP__
#define __CTU_CAN_FD_CAN_FD_REGISTER_MAP__

#include <linux/bits.h>

/* CAN_Registers memory map */
enum ctu_can_fd_can_registers {
	CTUCANFD_DEVICE_ID             = 0x0,
	CTUCANFD_VERSION               = 0x2,
	CTUCANFD_MODE                  = 0x4,
	CTUCANFD_SETTINGS              = 0x6,
	CTUCANFD_STATUS                = 0x8,
	CTUCANFD_COMMAND               = 0xc,
	CTUCANFD_INT_STAT             = 0x10,
	CTUCANFD_INT_ENA_SET          = 0x14,
	CTUCANFD_INT_ENA_CLR          = 0x18,
	CTUCANFD_INT_MASK_SET         = 0x1c,
	CTUCANFD_INT_MASK_CLR         = 0x20,
	CTUCANFD_BTR                  = 0x24,
	CTUCANFD_BTR_FD               = 0x28,
	CTUCANFD_EWL                  = 0x2c,
	CTUCANFD_ERP                  = 0x2d,
	CTUCANFD_FAULT_STATE          = 0x2e,
	CTUCANFD_REC                  = 0x30,
	CTUCANFD_TEC                  = 0x32,
	CTUCANFD_ERR_NORM             = 0x34,
	CTUCANFD_ERR_FD               = 0x36,
	CTUCANFD_CTR_PRES             = 0x38,
	CTUCANFD_FILTER_A_MASK        = 0x3c,
	CTUCANFD_FILTER_A_VAL         = 0x40,
	CTUCANFD_FILTER_B_MASK        = 0x44,
	CTUCANFD_FILTER_B_VAL         = 0x48,
	CTUCANFD_FILTER_C_MASK        = 0x4c,
	CTUCANFD_FILTER_C_VAL         = 0x50,
	CTUCANFD_FILTER_RAN_LOW       = 0x54,
	CTUCANFD_FILTER_RAN_HIGH      = 0x58,
	CTUCANFD_FILTER_CONTROL       = 0x5c,
	CTUCANFD_FILTER_STATUS        = 0x5e,
	CTUCANFD_RX_MEM_INFO          = 0x60,
	CTUCANFD_RX_POINTERS          = 0x64,
	CTUCANFD_RX_STATUS            = 0x68,
	CTUCANFD_RX_SETTINGS          = 0x6a,
	CTUCANFD_RX_DATA              = 0x6c,
	CTUCANFD_TX_STATUS            = 0x70,
	CTUCANFD_TX_COMMAND           = 0x74,
	CTUCANFD_TXTB_INFO            = 0x76,
	CTUCANFD_TX_PRIORITY          = 0x78,
	CTUCANFD_ERR_CAPT             = 0x7c,
	CTUCANFD_RETR_CTR             = 0x7d,
	CTUCANFD_ALC                  = 0x7e,
	CTUCANFD_TS_INFO              = 0x7f,
	CTUCANFD_TRV_DELAY            = 0x80,
	CTUCANFD_SSP_CFG              = 0x82,
	CTUCANFD_RX_FR_CTR            = 0x84,
	CTUCANFD_TX_FR_CTR            = 0x88,
	CTUCANFD_DEBUG_REGISTER       = 0x8c,
	CTUCANFD_YOLO_REG             = 0x90,
	CTUCANFD_TIMESTAMP_LOW        = 0x94,
	CTUCANFD_TIMESTAMP_HIGH       = 0x98,
	CTUCANFD_TXTB1_DATA_1        = 0x100,
	CTUCANFD_TXTB1_DATA_2        = 0x104,
	CTUCANFD_TXTB1_DATA_20       = 0x14c,
	CTUCANFD_TXTB2_DATA_1        = 0x200,
	CTUCANFD_TXTB2_DATA_2        = 0x204,
	CTUCANFD_TXTB2_DATA_20       = 0x24c,
	CTUCANFD_TXTB3_DATA_1        = 0x300,
	CTUCANFD_TXTB3_DATA_2        = 0x304,
	CTUCANFD_TXTB3_DATA_20       = 0x34c,
	CTUCANFD_TXTB4_DATA_1        = 0x400,
	CTUCANFD_TXTB4_DATA_2        = 0x404,
	CTUCANFD_TXTB4_DATA_20       = 0x44c,
};

/* Control_registers memory region */

/*  DEVICE_ID VERSION registers */
#define REG_DEVICE_ID_DEVICE_ID GENMASK(15, 0)
#define REG_DEVICE_ID_VER_MINOR GENMASK(23, 16)
#define REG_DEVICE_ID_VER_MAJOR GENMASK(31, 24)

/*  MODE SETTINGS registers */
#define REG_MODE_RST BIT(0)
#define REG_MODE_BMM BIT(1)
#define REG_MODE_STM BIT(2)
#define REG_MODE_AFM BIT(3)
#define REG_MODE_FDE BIT(4)
#define REG_MODE_TTTM BIT(5)
#define REG_MODE_ROM BIT(6)
#define REG_MODE_ACF BIT(7)
#define REG_MODE_TSTM BIT(8)

Annotation

Implementation Notes