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.

Dependency Surface

Detected Declarations

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

Implementation Notes