drivers/staging/media/atomisp/pci/css_2401_system/hrt/rx_csi_defs.h

Source file repositories/reference/linux-study-clean/drivers/staging/media/atomisp/pci/css_2401_system/hrt/rx_csi_defs.h

File Facts

System
Linux kernel
Corpus path
drivers/staging/media/atomisp/pci/css_2401_system/hrt/rx_csi_defs.h
Extension
.h
Size
7993 bytes
Lines
162
Domain
Driver Families
Bucket
drivers/staging
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 _csi_rx_defs_h
#define _csi_rx_defs_h

//#include "rx_csi_common_defs.h"

#define MIPI_PKT_DATA_WIDTH                         32
//#define CLK_CROSSING_FIFO_DEPTH                     16
#define _CSI_RX_REG_ALIGN                            4

//define number of IRQ (see below for definition of each IRQ bits)
#define CSI_RX_NOF_IRQS_BYTE_DOMAIN                11
#define CSI_RX_NOF_IRQS_ISP_DOMAIN                 15 // CSI_RX_NOF_IRQS_BYTE_DOMAIN + remaining from Dphy_rx already on ISP clock domain

// REGISTER DESCRIPTION
//#define _HRT_CSI_RX_SOFTRESET_REG_IDX                0
#define _HRT_CSI_RX_ENABLE_REG_IDX                   0
#define _HRT_CSI_RX_NOF_ENABLED_LANES_REG_IDX        1
#define _HRT_CSI_RX_ERROR_HANDLING_REG_IDX           2
#define _HRT_CSI_RX_STATUS_REG_IDX                   3
#define _HRT_CSI_RX_STATUS_DLANE_HS_REG_IDX          4
#define _HRT_CSI_RX_STATUS_DLANE_LP_REG_IDX          5
//#define _HRT_CSI_RX_IRQ_CONFIG_REG_IDX               6
#define _HRT_CSI_RX_DLY_CNT_TERMEN_CLANE_REG_IDX     6
#define _HRT_CSI_RX_DLY_CNT_SETTLE_CLANE_REG_IDX     7
#define _HRT_CSI_RX_DLY_CNT_TERMEN_DLANE_REG_IDX(lane_idx)    (8 + (2 * lane_idx))
#define _HRT_CSI_RX_DLY_CNT_SETTLE_DLANE_REG_IDX(lane_idx)    (8 + (2 * lane_idx) + 1)

#define _HRT_CSI_RX_NOF_REGISTERS(nof_dlanes)      (8 + 2 * (nof_dlanes))

//#define _HRT_CSI_RX_SOFTRESET_REG_WIDTH              1
#define _HRT_CSI_RX_ENABLE_REG_WIDTH                 1
#define _HRT_CSI_RX_NOF_ENABLED_LANES_REG_WIDTH      3
#define _HRT_CSI_RX_ERROR_HANDLING_REG_WIDTH         4
#define _HRT_CSI_RX_STATUS_REG_WIDTH                 1
#define _HRT_CSI_RX_STATUS_DLANE_HS_REG_WIDTH        8
#define _HRT_CSI_RX_STATUS_DLANE_LP_REG_WIDTH        24
#define _HRT_CSI_RX_IRQ_CONFIG_REG_WIDTH             (CSI_RX_NOF_IRQS_ISP_DOMAIN)
#define _HRT_CSI_RX_DLY_CNT_REG_WIDTH                24
//#define _HRT_CSI_RX_IRQ_STATUS_REG_WIDTH            NOF_IRQS
//#define _HRT_CSI_RX_IRQ_CLEAR_REG_WIDTH             0

#define ONE_LANE_ENABLED                             0
#define TWO_LANES_ENABLED                            1
#define THREE_LANES_ENABLED                          2
#define FOUR_LANES_ENABLED                           3

// Error handling reg bit positions
#define ERR_DECISION_BIT      0
#define DISC_RESERVED_SP_BIT  1
#define DISC_RESERVED_LP_BIT  2
#define DIS_INCOMP_PKT_CHK_BIT	3

#define _HRT_CSI_RX_IRQ_CONFIG_REG_VAL_POSEDGE      0
#define _HRT_CSI_RX_IRQ_CONFIG_REG_VAL_ORIGINAL     1

// Interrupt bits
#define _HRT_RX_CSI_IRQ_SINGLE_PH_ERROR_CORRECTED   0
#define _HRT_RX_CSI_IRQ_MULTIPLE_PH_ERROR_DETECTED  1
#define _HRT_RX_CSI_IRQ_PAYLOAD_CHECKSUM_ERROR      2
#define _HRT_RX_CSI_IRQ_FIFO_FULL_ERROR             3
#define _HRT_RX_CSI_IRQ_RESERVED_SP_DETECTED        4
#define _HRT_RX_CSI_IRQ_RESERVED_LP_DETECTED        5
//#define _HRT_RX_CSI_IRQ_PREMATURE_SOP               6
#define _HRT_RX_CSI_IRQ_INCOMPLETE_PACKET           6
#define _HRT_RX_CSI_IRQ_FRAME_SYNC_ERROR            7
#define _HRT_RX_CSI_IRQ_LINE_SYNC_ERROR             8
#define _HRT_RX_CSI_IRQ_DLANE_HS_SOT_ERROR          9
#define _HRT_RX_CSI_IRQ_DLANE_HS_SOT_SYNC_ERROR    10

#define _HRT_RX_CSI_IRQ_DLANE_ESC_ERROR            11
#define _HRT_RX_CSI_IRQ_DLANE_TRIGGERESC           12
#define _HRT_RX_CSI_IRQ_DLANE_ULPSESC              13
#define _HRT_RX_CSI_IRQ_CLANE_ULPSCLKNOT           14

/* OLD ARASAN FRONTEND IRQs
#define _HRT_RX_CSI_IRQ_OVERRUN_BIT                0
#define _HRT_RX_CSI_IRQ_RESERVED_BIT               1
#define _HRT_RX_CSI_IRQ_SLEEP_MODE_ENTRY_BIT       2
#define _HRT_RX_CSI_IRQ_SLEEP_MODE_EXIT_BIT        3
#define _HRT_RX_CSI_IRQ_ERR_SOT_HS_BIT             4
#define _HRT_RX_CSI_IRQ_ERR_SOT_SYNC_HS_BIT        5
#define _HRT_RX_CSI_IRQ_ERR_CONTROL_BIT            6
#define _HRT_RX_CSI_IRQ_ERR_ECC_DOUBLE_BIT         7
#define _HRT_RX_CSI_IRQ_ERR_ECC_CORRECTED_BIT      8
#define _HRT_RX_CSI_IRQ_ERR_ECC_NO_CORRECTION_BIT  9
#define _HRT_RX_CSI_IRQ_ERR_CRC_BIT               10
#define _HRT_RX_CSI_IRQ_ERR_ID_BIT                11
#define _HRT_RX_CSI_IRQ_ERR_FRAME_SYNC_BIT        12
#define _HRT_RX_CSI_IRQ_ERR_FRAME_DATA_BIT        13
#define _HRT_RX_CSI_IRQ_DATA_TIMEOUT_BIT          14

Annotation

Implementation Notes