drivers/mfd/timberdale.h
Source file repositories/reference/linux-study-clean/drivers/mfd/timberdale.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/mfd/timberdale.h- Extension
.h- Size
- 2839 bytes
- Lines
- 130
- Domain
- Driver Families
- Bucket
- drivers/mfd
- 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 MFD_TIMBERDALE_H
#define MFD_TIMBERDALE_H
#define DRV_VERSION "0.3"
/* This driver only support versions >= 3.8 and < 4.0 */
#define TIMB_SUPPORTED_MAJOR 3
/* This driver only support minor >= 8 */
#define TIMB_REQUIRED_MINOR 8
/* Registers of the control area */
#define TIMB_REV_MAJOR 0x00
#define TIMB_REV_MINOR 0x04
#define TIMB_HW_CONFIG 0x08
#define TIMB_SW_RST 0x40
/* bits in the TIMB_HW_CONFIG register */
#define TIMB_HW_CONFIG_SPI_8BIT 0x80
#define TIMB_HW_VER_MASK 0x0f
#define TIMB_HW_VER0 0x00
#define TIMB_HW_VER1 0x01
#define TIMB_HW_VER2 0x02
#define TIMB_HW_VER3 0x03
#define OCORESOFFSET 0x0
#define OCORESEND 0x1f
#define SPIOFFSET 0x80
#define SPIEND 0xff
#define UARTLITEOFFSET 0x100
#define UARTLITEEND 0x10f
#define RDSOFFSET 0x180
#define RDSEND 0x183
#define ETHOFFSET 0x300
#define ETHEND 0x3ff
#define GPIOOFFSET 0x400
#define GPIOEND 0x7ff
#define CHIPCTLOFFSET 0x800
#define CHIPCTLEND 0x8ff
#define CHIPCTLSIZE (CHIPCTLEND - CHIPCTLOFFSET + 1)
#define INTCOFFSET 0xc00
#define INTCEND 0xfff
#define INTCSIZE (INTCEND - INTCOFFSET)
#define MOSTOFFSET 0x1000
#define MOSTEND 0x13ff
#define UARTOFFSET 0x1400
#define UARTEND 0x17ff
#define XIICOFFSET 0x1800
#define XIICEND 0x19ff
#define I2SOFFSET 0x1C00
#define I2SEND 0x1fff
#define LOGIWOFFSET 0x30000
#define LOGIWEND 0x37fff
#define MLCOREOFFSET 0x40000
#define MLCOREEND 0x43fff
#define DMAOFFSET 0x01000000
#define DMAEND 0x013fffff
/* SDHC0 is placed in PCI bar 1 */
#define SDHC0OFFSET 0x00
#define SDHC0END 0xff
/* SDHC1 is placed in PCI bar 2 */
#define SDHC1OFFSET 0x00
#define SDHC1END 0xff
#define PCI_VENDOR_ID_TIMB 0x10ee
#define PCI_DEVICE_ID_TIMB 0xa123
#define IRQ_TIMBERDALE_INIC 0
#define IRQ_TIMBERDALE_MLB 1
#define IRQ_TIMBERDALE_GPIO 2
#define IRQ_TIMBERDALE_I2C 3
#define IRQ_TIMBERDALE_UART 4
#define IRQ_TIMBERDALE_DMA 5
Annotation
- Atlas domain: Driver Families / drivers/mfd.
- 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.