drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_reg.h
Source file repositories/reference/linux-study-clean/drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_reg.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/staging/media/sunxi/sun6i-isp/sun6i_isp_reg.h- Extension
.h- Size
- 10220 bytes
- Lines
- 276
- 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
linux/kernel.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef _SUN6I_ISP_REG_H_
#define _SUN6I_ISP_REG_H_
#include <linux/kernel.h>
#define SUN6I_ISP_ADDR_VALUE(a) ((a) >> 2)
/* Frontend */
#define SUN6I_ISP_SRC_MODE_DRAM 0
#define SUN6I_ISP_SRC_MODE_CSI(n) (1 + (n))
#define SUN6I_ISP_FE_CFG_REG 0x0
#define SUN6I_ISP_FE_CFG_EN BIT(0)
#define SUN6I_ISP_FE_CFG_SRC0_MODE(v) (((v) << 8) & GENMASK(9, 8))
#define SUN6I_ISP_FE_CFG_SRC1_MODE(v) (((v) << 16) & GENMASK(17, 16))
#define SUN6I_ISP_FE_CTRL_REG 0x4
#define SUN6I_ISP_FE_CTRL_SCAP_EN BIT(0)
#define SUN6I_ISP_FE_CTRL_VCAP_EN BIT(1)
#define SUN6I_ISP_FE_CTRL_PARA_READY BIT(2)
#define SUN6I_ISP_FE_CTRL_LUT_UPDATE BIT(3)
#define SUN6I_ISP_FE_CTRL_LENS_UPDATE BIT(4)
#define SUN6I_ISP_FE_CTRL_GAMMA_UPDATE BIT(5)
#define SUN6I_ISP_FE_CTRL_DRC_UPDATE BIT(6)
#define SUN6I_ISP_FE_CTRL_DISC_UPDATE BIT(7)
#define SUN6I_ISP_FE_CTRL_OUTPUT_SPEED_CTRL(v) (((v) << 16) & GENMASK(17, 16))
#define SUN6I_ISP_FE_CTRL_VCAP_READ_START BIT(31)
#define SUN6I_ISP_FE_INT_EN_REG 0x8
#define SUN6I_ISP_FE_INT_EN_FINISH BIT(0)
#define SUN6I_ISP_FE_INT_EN_START BIT(1)
#define SUN6I_ISP_FE_INT_EN_PARA_SAVE BIT(2)
#define SUN6I_ISP_FE_INT_EN_PARA_LOAD BIT(3)
#define SUN6I_ISP_FE_INT_EN_SRC0_FIFO BIT(4)
#define SUN6I_ISP_FE_INT_EN_SRC1_FIFO BIT(5)
#define SUN6I_ISP_FE_INT_EN_ROT_FINISH BIT(6)
#define SUN6I_ISP_FE_INT_EN_LINE_NUM_START BIT(7)
#define SUN6I_ISP_FE_INT_STA_REG 0xc
#define SUN6I_ISP_FE_INT_STA_CLEAR 0xff
#define SUN6I_ISP_FE_INT_STA_FINISH BIT(0)
#define SUN6I_ISP_FE_INT_STA_START BIT(1)
#define SUN6I_ISP_FE_INT_STA_PARA_SAVE BIT(2)
#define SUN6I_ISP_FE_INT_STA_PARA_LOAD BIT(3)
#define SUN6I_ISP_FE_INT_STA_SRC0_FIFO BIT(4)
#define SUN6I_ISP_FE_INT_STA_SRC1_FIFO BIT(5)
#define SUN6I_ISP_FE_INT_STA_ROT_FINISH BIT(6)
#define SUN6I_ISP_FE_INT_STA_LINE_NUM_START BIT(7)
/* Only since sun9i-a80-isp. */
#define SUN6I_ISP_FE_INT_LINE_NUM_REG 0x18
#define SUN6I_ISP_FE_ROT_OF_CFG_REG 0x1c
/* Buffers/tables */
#define SUN6I_ISP_REG_LOAD_ADDR_REG 0x20
#define SUN6I_ISP_REG_SAVE_ADDR_REG 0x24
#define SUN6I_ISP_LUT_TABLE_ADDR_REG 0x28
#define SUN6I_ISP_DRC_TABLE_ADDR_REG 0x2c
#define SUN6I_ISP_STATS_ADDR_REG 0x30
/* SRAM */
#define SUN6I_ISP_SRAM_RW_OFFSET_REG 0x38
#define SUN6I_ISP_SRAM_RW_DATA_REG 0x3c
/* Global */
#define SUN6I_ISP_MODULE_EN_REG 0x40
#define SUN6I_ISP_MODULE_EN_AE BIT(0)
#define SUN6I_ISP_MODULE_EN_OBC BIT(1)
#define SUN6I_ISP_MODULE_EN_DPC_LUT BIT(2)
#define SUN6I_ISP_MODULE_EN_DPC_OTF BIT(3)
#define SUN6I_ISP_MODULE_EN_BDNF BIT(4)
#define SUN6I_ISP_MODULE_EN_AWB BIT(6)
#define SUN6I_ISP_MODULE_EN_WB BIT(7)
#define SUN6I_ISP_MODULE_EN_LSC BIT(8)
#define SUN6I_ISP_MODULE_EN_BGC BIT(9)
#define SUN6I_ISP_MODULE_EN_SAP BIT(10)
#define SUN6I_ISP_MODULE_EN_AF BIT(11)
#define SUN6I_ISP_MODULE_EN_RGB2RGB BIT(12)
#define SUN6I_ISP_MODULE_EN_RGB_DRC BIT(13)
#define SUN6I_ISP_MODULE_EN_TDNF BIT(15)
#define SUN6I_ISP_MODULE_EN_AFS BIT(16)
#define SUN6I_ISP_MODULE_EN_HIST BIT(17)
#define SUN6I_ISP_MODULE_EN_YUV_GAIN_OFFSET BIT(18)
#define SUN6I_ISP_MODULE_EN_YUV_DRC BIT(19)
#define SUN6I_ISP_MODULE_EN_TG BIT(20)
Annotation
- Immediate include surface: `linux/kernel.h`.
- 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.