drivers/input/serio/i8042-ip22io.h
Source file repositories/reference/linux-study-clean/drivers/input/serio/i8042-ip22io.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/input/serio/i8042-ip22io.h- Extension
.h- Size
- 1327 bytes
- Lines
- 73
- Domain
- Driver Families
- Bucket
- drivers/input
- 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
asm/sgi/ioc.hasm/sgi/ip22.h
Detected Declarations
function i8042_read_datafunction i8042_read_statusfunction i8042_write_datafunction i8042_write_commandfunction i8042_platform_initfunction i8042_platform_exit
Annotated Snippet
#ifndef _I8042_IP22_H
#define _I8042_IP22_H
#include <asm/sgi/ioc.h>
#include <asm/sgi/ip22.h>
/*
* Names.
*/
#define I8042_KBD_PHYS_DESC "hpc3ps2/serio0"
#define I8042_AUX_PHYS_DESC "hpc3ps2/serio1"
#define I8042_MUX_PHYS_DESC "hpc3ps2/serio%d"
/*
* IRQs.
*/
#define I8042_KBD_IRQ SGI_KEYBD_IRQ
#define I8042_AUX_IRQ SGI_KEYBD_IRQ
/*
* Register numbers.
*/
#define I8042_COMMAND_REG ((unsigned long)&sgioc->kbdmouse.command)
#define I8042_STATUS_REG ((unsigned long)&sgioc->kbdmouse.command)
#define I8042_DATA_REG ((unsigned long)&sgioc->kbdmouse.data)
static inline int i8042_read_data(void)
{
return sgioc->kbdmouse.data;
}
static inline int i8042_read_status(void)
{
return sgioc->kbdmouse.command;
}
static inline void i8042_write_data(int val)
{
sgioc->kbdmouse.data = val;
}
static inline void i8042_write_command(int val)
{
sgioc->kbdmouse.command = val;
}
static inline int i8042_platform_init(void)
{
#if 0
/* XXX sgi_kh is a virtual address */
if (!request_mem_region(sgi_kh, sizeof(struct hpc_keyb), "i8042"))
return -EBUSY;
#endif
i8042_reset = I8042_RESET_ALWAYS;
return 0;
}
static inline void i8042_platform_exit(void)
{
#if 0
release_mem_region(JAZZ_KEYBOARD_ADDRESS, sizeof(struct hpc_keyb));
#endif
}
#endif /* _I8042_IP22_H */
Annotation
- Immediate include surface: `asm/sgi/ioc.h`, `asm/sgi/ip22.h`.
- Detected declarations: `function i8042_read_data`, `function i8042_read_status`, `function i8042_write_data`, `function i8042_write_command`, `function i8042_platform_init`, `function i8042_platform_exit`.
- Atlas domain: Driver Families / drivers/input.
- 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.