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.
- 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
- No C-style include directives detected by the generator.
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
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
- Atlas domain: Driver Families / drivers/staging.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.