sound/ppc/snd_ps3_reg.h
Source file repositories/reference/linux-study-clean/sound/ppc/snd_ps3_reg.h
File Facts
- System
- Linux kernel
- Corpus path
sound/ppc/snd_ps3_reg.h- Extension
.h- Size
- 33407 bytes
- Lines
- 880
- Domain
- Driver Families
- Bucket
- sound/ppc
- 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
#define PS3_AUDIO_INTR_0 (0x00000100)
#define PS3_AUDIO_INTR_EN_0 (0x00000140)
#define PS3_AUDIO_CONFIG (0x00000200)
/*
* DMAC registers
* n:0..9
*/
#define PS3_AUDIO_DMAC_REGBASE(x) (0x0000210 + 0x20 * (x))
#define PS3_AUDIO_KICK(n) (PS3_AUDIO_DMAC_REGBASE(n) + 0x00)
#define PS3_AUDIO_SOURCE(n) (PS3_AUDIO_DMAC_REGBASE(n) + 0x04)
#define PS3_AUDIO_DEST(n) (PS3_AUDIO_DMAC_REGBASE(n) + 0x08)
#define PS3_AUDIO_DMASIZE(n) (PS3_AUDIO_DMAC_REGBASE(n) + 0x0C)
/*
* mute control
*/
#define PS3_AUDIO_AX_MCTRL (0x00004000)
#define PS3_AUDIO_AX_ISBP (0x00004004)
#define PS3_AUDIO_AX_AOBP (0x00004008)
#define PS3_AUDIO_AX_IC (0x00004010)
#define PS3_AUDIO_AX_IE (0x00004014)
#define PS3_AUDIO_AX_IS (0x00004018)
/*
* three wire serial
* n:0..3
*/
#define PS3_AUDIO_AO_MCTRL (0x00006000)
#define PS3_AUDIO_AO_3WMCTRL (0x00006004)
#define PS3_AUDIO_AO_3WCTRL(n) (0x00006200 + 0x200 * (n))
/*
* S/PDIF
* n:0..1
* x:0..11
* y:0..5
*/
#define PS3_AUDIO_AO_SPD_REGBASE(n) (0x00007200 + 0x200 * (n))
#define PS3_AUDIO_AO_SPDCTRL(n) \
(PS3_AUDIO_AO_SPD_REGBASE(n) + 0x00)
#define PS3_AUDIO_AO_SPDUB(n, x) \
(PS3_AUDIO_AO_SPD_REGBASE(n) + 0x04 + 0x04 * (x))
#define PS3_AUDIO_AO_SPDCS(n, y) \
(PS3_AUDIO_AO_SPD_REGBASE(n) + 0x34 + 0x04 * (y))
/*
PS3_AUDIO_INTR_0 register tells an interrupt handler which audio
DMA channel triggered the interrupt. The interrupt status for a channel
can be cleared by writing a '1' to the corresponding bit. A new interrupt
cannot be generated until the previous interrupt has been cleared.
Note that the status reported by PS3_AUDIO_INTR_0 is independent of the
value of PS3_AUDIO_INTR_EN_0.
31 24 23 16 15 8 7 0
+-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0 0 0 0 0 0|C|0|C|0|C|0|C|0|C|0|C|0|C|0|C|0|C|0|C| INTR_0
+-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+
*/
#define PS3_AUDIO_INTR_0_CHAN(n) (1 << ((n) * 2))
#define PS3_AUDIO_INTR_0_CHAN9 PS3_AUDIO_INTR_0_CHAN(9)
#define PS3_AUDIO_INTR_0_CHAN8 PS3_AUDIO_INTR_0_CHAN(8)
#define PS3_AUDIO_INTR_0_CHAN7 PS3_AUDIO_INTR_0_CHAN(7)
#define PS3_AUDIO_INTR_0_CHAN6 PS3_AUDIO_INTR_0_CHAN(6)
#define PS3_AUDIO_INTR_0_CHAN5 PS3_AUDIO_INTR_0_CHAN(5)
#define PS3_AUDIO_INTR_0_CHAN4 PS3_AUDIO_INTR_0_CHAN(4)
#define PS3_AUDIO_INTR_0_CHAN3 PS3_AUDIO_INTR_0_CHAN(3)
#define PS3_AUDIO_INTR_0_CHAN2 PS3_AUDIO_INTR_0_CHAN(2)
#define PS3_AUDIO_INTR_0_CHAN1 PS3_AUDIO_INTR_0_CHAN(1)
#define PS3_AUDIO_INTR_0_CHAN0 PS3_AUDIO_INTR_0_CHAN(0)
/*
The PS3_AUDIO_INTR_EN_0 register specifies which DMA channels can generate
an interrupt to the PU. Each bit of PS3_AUDIO_INTR_EN_0 is ANDed with the
corresponding bit in PS3_AUDIO_INTR_0. The resulting bits are OR'd together
to generate the Audio interrupt.
31 24 23 16 15 8 7 0
+-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+
|0 0 0 0 0 0 0 0 0 0 0 0 0|C|0|C|0|C|0|C|0|C|0|C|0|C|0|C|0|C|0|C| INTR_EN_0
+-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-|-+-+-+-+-+-+-+-+
Bit assignments are same as PS3_AUDIO_INTR_0
*/
Annotation
- Atlas domain: Driver Families / sound/ppc.
- 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.