drivers/media/pci/solo6x10/solo6x10-regs.h
Source file repositories/reference/linux-study-clean/drivers/media/pci/solo6x10/solo6x10-regs.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/media/pci/solo6x10/solo6x10-regs.h- Extension
.h- Size
- 21902 bytes
- Lines
- 629
- 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/bitops.hsolo6x10-offsets.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef __SOLO6X10_REGISTERS_H
#define __SOLO6X10_REGISTERS_H
#include <linux/bitops.h>
#include "solo6x10-offsets.h"
/* Global 6010 system configuration */
#define SOLO_SYS_CFG 0x0000
#define SOLO_SYS_CFG_FOUT_EN 0x00000001
#define SOLO_SYS_CFG_PLL_BYPASS 0x00000002
#define SOLO_SYS_CFG_PLL_PWDN 0x00000004
#define SOLO_SYS_CFG_OUTDIV(__n) (((__n) & 0x003) << 3)
#define SOLO_SYS_CFG_FEEDBACKDIV(__n) (((__n) & 0x1ff) << 5)
#define SOLO_SYS_CFG_INPUTDIV(__n) (((__n) & 0x01f) << 14)
#define SOLO_SYS_CFG_CLOCK_DIV 0x00080000
#define SOLO_SYS_CFG_NCLK_DELAY(__n) (((__n) & 0x003) << 24)
#define SOLO_SYS_CFG_PCLK_DELAY(__n) (((__n) & 0x00f) << 26)
#define SOLO_SYS_CFG_SDRAM64BIT 0x40000000
#define SOLO_SYS_CFG_RESET 0x80000000
#define SOLO_DMA_CTRL 0x0004
#define SOLO_DMA_CTRL_REFRESH_CYCLE(n) ((n)<<8)
/* 0=16/32MB, 1=32/64MB, 2=64/128MB, 3=128/256MB */
#define SOLO_DMA_CTRL_SDRAM_SIZE(n) ((n)<<6)
#define SOLO_DMA_CTRL_SDRAM_CLK_INVERT BIT(5)
#define SOLO_DMA_CTRL_STROBE_SELECT BIT(4)
#define SOLO_DMA_CTRL_READ_DATA_SELECT BIT(3)
#define SOLO_DMA_CTRL_READ_CLK_SELECT BIT(2)
#define SOLO_DMA_CTRL_LATENCY(n) ((n)<<0)
/* Some things we set in this are undocumented. Why Softlogic?!?! */
#define SOLO_DMA_CTRL1 0x0008
#define SOLO_SYS_VCLK 0x000C
#define SOLO_VCLK_INVERT BIT(22)
/* 0=sys_clk/4, 1=sys_clk/2, 2=clk_in/2 of system input */
#define SOLO_VCLK_SELECT(n) ((n)<<20)
#define SOLO_VCLK_VIN1415_DELAY(n) ((n)<<14)
#define SOLO_VCLK_VIN1213_DELAY(n) ((n)<<12)
#define SOLO_VCLK_VIN1011_DELAY(n) ((n)<<10)
#define SOLO_VCLK_VIN0809_DELAY(n) ((n)<<8)
#define SOLO_VCLK_VIN0607_DELAY(n) ((n)<<6)
#define SOLO_VCLK_VIN0405_DELAY(n) ((n)<<4)
#define SOLO_VCLK_VIN0203_DELAY(n) ((n)<<2)
#define SOLO_VCLK_VIN0001_DELAY(n) ((n)<<0)
#define SOLO_IRQ_STAT 0x0010
#define SOLO_IRQ_MASK 0x0014
#define SOLO_IRQ_P2M(n) BIT((n) + 17)
#define SOLO_IRQ_GPIO BIT(16)
#define SOLO_IRQ_VIDEO_LOSS BIT(15)
#define SOLO_IRQ_VIDEO_IN BIT(14)
#define SOLO_IRQ_MOTION BIT(13)
#define SOLO_IRQ_ATA_CMD BIT(12)
#define SOLO_IRQ_ATA_DIR BIT(11)
#define SOLO_IRQ_PCI_ERR BIT(10)
#define SOLO_IRQ_PS2_1 BIT(9)
#define SOLO_IRQ_PS2_0 BIT(8)
#define SOLO_IRQ_SPI BIT(7)
#define SOLO_IRQ_IIC BIT(6)
#define SOLO_IRQ_UART(n) BIT((n) + 4)
#define SOLO_IRQ_G723 BIT(3)
#define SOLO_IRQ_DECODER BIT(1)
#define SOLO_IRQ_ENCODER BIT(0)
#define SOLO_CHIP_OPTION 0x001C
#define SOLO_CHIP_ID_MASK 0x00000007
#define SOLO_PLL_CONFIG 0x0020 /* 6110 Only */
#define SOLO_EEPROM_CTRL 0x0060
#define SOLO_EEPROM_ACCESS_EN BIT(7)
#define SOLO_EEPROM_CS BIT(3)
#define SOLO_EEPROM_CLK BIT(2)
#define SOLO_EEPROM_DO BIT(1)
#define SOLO_EEPROM_DI BIT(0)
#define SOLO_EEPROM_ENABLE (SOLO_EEPROM_ACCESS_EN | SOLO_EEPROM_CS)
#define SOLO_PCI_ERR 0x0070
#define SOLO_PCI_ERR_FATAL 0x00000001
#define SOLO_PCI_ERR_PARITY 0x00000002
#define SOLO_PCI_ERR_TARGET 0x00000004
#define SOLO_PCI_ERR_TIMEOUT 0x00000008
#define SOLO_PCI_ERR_P2M 0x00000010
#define SOLO_PCI_ERR_ATA 0x00000020
#define SOLO_PCI_ERR_P2M_DESC 0x00000040
#define SOLO_PCI_ERR_FSM0(__s) (((__s) >> 16) & 0x0f)
#define SOLO_PCI_ERR_FSM1(__s) (((__s) >> 20) & 0x0f)
#define SOLO_PCI_ERR_FSM2(__s) (((__s) >> 24) & 0x1f)
Annotation
- Immediate include surface: `linux/bitops.h`, `solo6x10-offsets.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.