arch/arm/mach-pxa/spitz.c
Source file repositories/reference/linux-study-clean/arch/arm/mach-pxa/spitz.c
File Facts
- System
- Linux kernel
- Corpus path
arch/arm/mach-pxa/spitz.c- Extension
.c- Size
- 31530 bytes
- Lines
- 1175
- Domain
- Architecture Layer
- Bucket
- arch/arm
- Inferred role
- Architecture Layer: implementation source
- Status
- source implementation candidate
Why This File Exists
CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/kernel.hlinux/platform_device.hlinux/delay.hlinux/gpio_keys.hlinux/gpio.hlinux/gpio/machine.hlinux/gpio/property.hlinux/leds.hlinux/i2c.hlinux/platform_data/i2c-pxa.hlinux/platform_data/pca953x.hlinux/property.hlinux/spi/spi.hlinux/spi/ads7846.hlinux/spi/corgi_lcd.hlinux/mtd/sharpsl.hlinux/mtd/physmap.hlinux/input-event-codes.hlinux/input/matrix_keypad.hlinux/regulator/machine.hlinux/io.hlinux/reboot.hlinux/memblock.hasm/setup.hasm/mach-types.hasm/mach/arch.hasm/mach/sharpsl_param.hasm/hardware/scoop.hpxa27x.hpxa27x-udc.hreset.h
Detected Declarations
function spitz_scoop_initfunction spitz_card_pwr_ctrlfunction spitz_scoop_initfunction spitz_pcmcia_initfunction spitz_pcmcia_initfunction spitz_mkp_initfunction spitz_mkp_initfunction spitz_keys_initfunction spitz_keys_initfunction spitz_leds_initfunction spitz_leds_initfunction spitz_spi_initfunction spitz_spi_initfunction spitz_mmc_initfunction spitz_mmc_initfunction spitz_ohci_exitfunction spitz_uhc_initfunction spitz_uhc_initfunction spitz_lcd_initfunction spitz_lcd_initfunction akita_ooblayout_eccfunction akita_ooblayout_freefunction spitz_nand_initfunction spitz_nand_initfunction spitz_nor_initfunction spitz_nor_initfunction spitz_i2c_initfunction spitz_i2c_initfunction spitz_audio_initfunction spitz_powerofffunction spitz_restartfunction spitz_initfunction spitz_fixup
Annotated Snippet
static inline void spitz_scoop_init(void) {}
static inline void spitz_card_pwr_ctrl(uint8_t enable, uint8_t new_cpr) {}
#endif
/******************************************************************************
* PCMCIA
******************************************************************************/
#if defined(CONFIG_PCMCIA_PXA2XX) || defined(CONFIG_PCMCIA_PXA2XX_MODULE)
static void spitz_pcmcia_pwr(struct device *scoop, uint16_t cpr, int nr)
{
/* Only need to override behaviour for slot 0 */
if (nr == 0)
spitz_card_pwr_ctrl(
cpr & (SCOOP_CPR_CF_3V | SCOOP_CPR_CF_XV), cpr);
else
write_scoop_reg(scoop, SCOOP_CPR, cpr);
}
static struct scoop_pcmcia_dev spitz_pcmcia_scoop[] = {
{
.dev = &spitz_scoop_1_device.dev,
.irq = SPITZ_IRQ_GPIO_CF_IRQ,
.cd_irq = SPITZ_IRQ_GPIO_CF_CD,
.cd_irq_str = "PCMCIA0 CD",
}, {
.dev = &spitz_scoop_2_device.dev,
.irq = SPITZ_IRQ_GPIO_CF2_IRQ,
.cd_irq = -1,
},
};
static struct scoop_pcmcia_config spitz_pcmcia_config = {
.devs = &spitz_pcmcia_scoop[0],
.num_devs = 2,
.power_ctrl = spitz_pcmcia_pwr,
};
static void __init spitz_pcmcia_init(void)
{
/* Akita has only one PCMCIA slot used */
if (machine_is_akita())
spitz_pcmcia_config.num_devs = 1;
platform_scoop_config = &spitz_pcmcia_config;
}
#else
static inline void spitz_pcmcia_init(void) {}
#endif
/******************************************************************************
* GPIO keyboard
******************************************************************************/
#if defined(CONFIG_KEYBOARD_MATRIX) || defined(CONFIG_KEYBOARD_MATRIX_MODULE)
#define SPITZ_KEY_CALENDAR KEY_F1
#define SPITZ_KEY_ADDRESS KEY_F2
#define SPITZ_KEY_FN KEY_F3
#define SPITZ_KEY_CANCEL KEY_F4
#define SPITZ_KEY_EXOK KEY_F5
#define SPITZ_KEY_EXCANCEL KEY_F6
#define SPITZ_KEY_EXJOGDOWN KEY_F7
#define SPITZ_KEY_EXJOGUP KEY_F8
#define SPITZ_KEY_JAP1 KEY_LEFTALT
#define SPITZ_KEY_JAP2 KEY_RIGHTCTRL
#define SPITZ_KEY_SYNC KEY_F9
#define SPITZ_KEY_MAIL KEY_F10
#define SPITZ_KEY_OK KEY_F11
#define SPITZ_KEY_MENU KEY_F12
static const uint32_t spitz_keymap[] = {
KEY(0, 0, KEY_LEFTCTRL),
KEY(0, 1, KEY_1),
KEY(0, 2, KEY_3),
KEY(0, 3, KEY_5),
KEY(0, 4, KEY_6),
KEY(0, 5, KEY_7),
KEY(0, 6, KEY_9),
KEY(0, 7, KEY_0),
KEY(0, 8, KEY_BACKSPACE),
KEY(0, 9, SPITZ_KEY_EXOK), /* EXOK */
KEY(0, 10, SPITZ_KEY_EXCANCEL), /* EXCANCEL */
KEY(1, 1, KEY_2),
KEY(1, 2, KEY_4),
KEY(1, 3, KEY_R),
KEY(1, 4, KEY_Y),
KEY(1, 5, KEY_8),
KEY(1, 6, KEY_I),
KEY(1, 7, KEY_O),
KEY(1, 8, KEY_P),
KEY(1, 9, SPITZ_KEY_EXJOGDOWN), /* EXJOGDOWN */
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/platform_device.h`, `linux/delay.h`, `linux/gpio_keys.h`, `linux/gpio.h`, `linux/gpio/machine.h`, `linux/gpio/property.h`, `linux/leds.h`.
- Detected declarations: `function spitz_scoop_init`, `function spitz_card_pwr_ctrl`, `function spitz_scoop_init`, `function spitz_pcmcia_init`, `function spitz_pcmcia_init`, `function spitz_mkp_init`, `function spitz_mkp_init`, `function spitz_keys_init`, `function spitz_keys_init`, `function spitz_leds_init`.
- Atlas domain: Architecture Layer / arch/arm.
- 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.