drivers/media/platform/broadcom/bcm2835-unicam-regs.h
Source file repositories/reference/linux-study-clean/drivers/media/platform/broadcom/bcm2835-unicam-regs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/platform/broadcom/bcm2835-unicam-regs.h- Extension
.h- Size
- 7002 bytes
- Lines
- 247
- Domain
- Driver Families
- Bucket
- drivers/media
- 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/bits.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef VC4_REGS_UNICAM_H
#define VC4_REGS_UNICAM_H
#include <linux/bits.h>
/*
* The following values are taken from files found within the code drop
* made by Broadcom for the BCM21553 Graphics Driver, predominantly in
* brcm_usrlib/dag/vmcsx/vcinclude/hardware_vc4.h.
* They have been modified to be only the register offset.
*/
#define UNICAM_CTRL 0x000
#define UNICAM_STA 0x004
#define UNICAM_ANA 0x008
#define UNICAM_PRI 0x00c
#define UNICAM_CLK 0x010
#define UNICAM_CLT 0x014
#define UNICAM_DAT0 0x018
#define UNICAM_DAT1 0x01c
#define UNICAM_DAT2 0x020
#define UNICAM_DAT3 0x024
#define UNICAM_DLT 0x028
#define UNICAM_CMP0 0x02c
#define UNICAM_CMP1 0x030
#define UNICAM_CAP0 0x034
#define UNICAM_CAP1 0x038
#define UNICAM_ICTL 0x100
#define UNICAM_ISTA 0x104
#define UNICAM_IDI0 0x108
#define UNICAM_IPIPE 0x10c
#define UNICAM_IBSA0 0x110
#define UNICAM_IBEA0 0x114
#define UNICAM_IBLS 0x118
#define UNICAM_IBWP 0x11c
#define UNICAM_IHWIN 0x120
#define UNICAM_IHSTA 0x124
#define UNICAM_IVWIN 0x128
#define UNICAM_IVSTA 0x12c
#define UNICAM_ICC 0x130
#define UNICAM_ICS 0x134
#define UNICAM_IDC 0x138
#define UNICAM_IDPO 0x13c
#define UNICAM_IDCA 0x140
#define UNICAM_IDCD 0x144
#define UNICAM_IDS 0x148
#define UNICAM_DCS 0x200
#define UNICAM_DBSA0 0x204
#define UNICAM_DBEA0 0x208
#define UNICAM_DBWP 0x20c
#define UNICAM_DBCTL 0x300
#define UNICAM_IBSA1 0x304
#define UNICAM_IBEA1 0x308
#define UNICAM_IDI1 0x30c
#define UNICAM_DBSA1 0x310
#define UNICAM_DBEA1 0x314
#define UNICAM_MISC 0x400
/*
* The following bitmasks are from the kernel released by Broadcom
* for Android - https://android.googlesource.com/kernel/bcm/
* The Rhea, Hawaii, and Java chips all contain the same VideoCore4
* Unicam block as BCM2835, as defined in eg
* arch/arm/mach-rhea/include/mach/rdb_A0/brcm_rdb_cam.h and similar.
* Values reworked to use the kernel BIT and GENMASK macros.
*
* Some of the bit mnenomics have been amended to match the datasheet.
*/
/* UNICAM_CTRL Register */
#define UNICAM_CPE BIT(0)
#define UNICAM_MEM BIT(1)
#define UNICAM_CPR BIT(2)
#define UNICAM_CPM_MASK GENMASK(3, 3)
#define UNICAM_CPM_CSI2 0
#define UNICAM_CPM_CCP2 1
#define UNICAM_SOE BIT(4)
#define UNICAM_DCM_MASK GENMASK(5, 5)
#define UNICAM_DCM_STROBE 0
#define UNICAM_DCM_DATA 1
#define UNICAM_SLS BIT(6)
#define UNICAM_PFT_MASK GENMASK(11, 8)
#define UNICAM_OET_MASK GENMASK(20, 12)
/* UNICAM_STA Register */
#define UNICAM_SYN BIT(0)
#define UNICAM_CS BIT(1)
#define UNICAM_SBE BIT(2)
#define UNICAM_PBE BIT(3)
#define UNICAM_HOE BIT(4)
#define UNICAM_PLE BIT(5)
#define UNICAM_SSC BIT(6)
Annotation
- Immediate include surface: `linux/bits.h`.
- Atlas domain: Driver Families / drivers/media.
- 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.