drivers/misc/cardreader/rts5228.h
Source file repositories/reference/linux-study-clean/drivers/misc/cardreader/rts5228.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/misc/cardreader/rts5228.h- Extension
.h- Size
- 5343 bytes
- Lines
- 169
- Domain
- Driver Families
- Bucket
- drivers/misc
- 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.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
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 RTS5228_H
#define RTS5228_H
#define RTS5228_AUTOLOAD_CFG0 0xFF7B
#define RTS5228_AUTOLOAD_CFG1 0xFF7C
#define RTS5228_AUTOLOAD_CFG2 0xFF7D
#define RTS5228_AUTOLOAD_CFG3 0xFF7E
#define RTS5228_AUTOLOAD_CFG4 0xFF7F
#define RTS5228_REG_VREF 0xFE97
#define RTS5228_PWD_SUSPND_EN (1 << 4)
#define RTS5228_PAD_H3L1 0xFF79
#define PAD_GPIO_H3L1 (1 << 3)
/* SSC_CTL2 0xFC12 */
#define RTS5228_SSC_DEPTH_MASK 0x07
#define RTS5228_SSC_DEPTH_DISALBE 0x00
#define RTS5228_SSC_DEPTH_8M 0x01
#define RTS5228_SSC_DEPTH_4M 0x02
#define RTS5228_SSC_DEPTH_2M 0x03
#define RTS5228_SSC_DEPTH_1M 0x04
#define RTS5228_SSC_DEPTH_512K 0x05
#define RTS5228_SSC_DEPTH_256K 0x06
#define RTS5228_SSC_DEPTH_128K 0x07
/* DMACTL 0xFE2C */
#define RTS5228_DMA_PACK_SIZE_MASK 0xF0
#define RTS5228_REG_LDO12_CFG 0xFF6E
#define RTS5228_LDO12_VO_TUNE_MASK (0x07<<1)
#define RTS5228_LDO12_100 (0x00<<1)
#define RTS5228_LDO12_105 (0x01<<1)
#define RTS5228_LDO12_110 (0x02<<1)
#define RTS5228_LDO12_115 (0x03<<1)
#define RTS5228_LDO12_120 (0x04<<1)
#define RTS5228_LDO12_125 (0x05<<1)
#define RTS5228_LDO12_130 (0x06<<1)
#define RTS5228_LDO12_135 (0x07<<1)
#define RTS5228_REG_PWD_LDO12 (0x01<<0)
#define RTS5228_REG_LDO12_L12 0xFF6F
#define RTS5228_LDO12_L12_MASK (0x07<<4)
#define RTS5228_LDO12_L12_120 (0x04<<4)
/* LDO control register */
#define RTS5228_CARD_PWR_CTL 0xFD50
#define RTS5228_PUPDC (0x01<<5)
#define RTS5228_LDO1233318_POW_CTL 0xFF70
#define RTS5228_LDO3318_POWERON (0x01<<3)
#define RTS5228_LDO1_POWEROFF (0x00<<0)
#define RTS5228_LDO1_SOFTSTART (0x01<<0)
#define RTS5228_LDO1_FULLON (0x03<<0)
#define RTS5228_LDO1_POWERON_MASK (0x03<<0)
#define RTS5228_LDO_POWERON_MASK (0x0F<<0)
#define RTS5228_DV3318_CFG 0xFF71
#define RTS5228_DV3318_TUNE_MASK (0x07<<4)
#define RTS5228_DV3318_17 (0x00<<4)
#define RTS5228_DV3318_1V75 (0x01<<4)
#define RTS5228_DV3318_18 (0x02<<4)
#define RTS5228_DV3318_1V85 (0x03<<4)
#define RTS5228_DV3318_19 (0x04<<4)
#define RTS5228_DV3318_33 (0x07<<4)
#define RTS5228_DV3318_SR_MASK (0x03<<2)
#define RTS5228_DV3318_SR_0 (0x00<<2)
#define RTS5228_DV3318_SR_250 (0x01<<2)
#define RTS5228_DV3318_SR_500 (0x02<<2)
#define RTS5228_DV3318_SR_1000 (0x03<<2)
#define RTS5228_LDO1_CFG0 0xFF72
#define RTS5228_LDO1_OCP_THD_MASK (0x07<<5)
#define RTS5228_LDO1_OCP_EN (0x01<<4)
#define RTS5228_LDO1_OCP_LMT_THD_MASK (0x03<<2)
#define RTS5228_LDO1_OCP_LMT_EN (0x01<<1)
#define RTS5228_LDO1_OCP_THD_730 (0x00<<5)
#define RTS5228_LDO1_OCP_THD_780 (0x01<<5)
#define RTS5228_LDO1_OCP_THD_860 (0x02<<5)
#define RTS5228_LDO1_OCP_THD_930 (0x03<<5)
#define RTS5228_LDO1_OCP_THD_1000 (0x04<<5)
#define RTS5228_LDO1_OCP_THD_1070 (0x05<<5)
#define RTS5228_LDO1_OCP_THD_1140 (0x06<<5)
#define RTS5228_LDO1_OCP_THD_1220 (0x07<<5)
#define RTS5228_LDO1_LMT_THD_450 (0x00<<2)
#define RTS5228_LDO1_LMT_THD_1000 (0x01<<2)
#define RTS5228_LDO1_LMT_THD_1500 (0x02<<2)
Annotation
- Atlas domain: Driver Families / drivers/misc.
- 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.