arch/sh/boards/mach-se/7780/setup.c

Source file repositories/reference/linux-study-clean/arch/sh/boards/mach-se/7780/setup.c

File Facts

System
Linux kernel
Corpus path
arch/sh/boards/mach-se/7780/setup.c
Extension
.c
Size
2889 bytes
Lines
112
Domain
Architecture Layer
Bucket
arch/sh
Inferred role
Architecture Layer: exported/initcall integration point
Status
integration 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.

Dependency Surface

Detected Declarations

Annotated Snippet

device_initcall(se7780_devices_setup);

#define GPIO_PHCR        0xFFEA000E
#define GPIO_PMSELR      0xFFEA0080
#define GPIO_PECR        0xFFEA0008

static void __init se7780_setup(char **cmdline_p)
{
	/* "SH-Linux" on LED Display */
	__raw_writew( 'S' , PA_LED_DISP + (DISP_SEL0_ADDR << 1) );
	__raw_writew( 'H' , PA_LED_DISP + (DISP_SEL1_ADDR << 1) );
	__raw_writew( '-' , PA_LED_DISP + (DISP_SEL2_ADDR << 1) );
	__raw_writew( 'L' , PA_LED_DISP + (DISP_SEL3_ADDR << 1) );
	__raw_writew( 'i' , PA_LED_DISP + (DISP_SEL4_ADDR << 1) );
	__raw_writew( 'n' , PA_LED_DISP + (DISP_SEL5_ADDR << 1) );
	__raw_writew( 'u' , PA_LED_DISP + (DISP_SEL6_ADDR << 1) );
	__raw_writew( 'x' , PA_LED_DISP + (DISP_SEL7_ADDR << 1) );

	printk(KERN_INFO "Hitachi UL Solutions Engine 7780SE03 support.\n");

	/*
	 * PCI REQ/GNT setting
	 *   REQ0/GNT0 -> USB
	 *   REQ1/GNT1 -> PC Card
	 *   REQ2/GNT2 -> Serial ATA
	 *   REQ3/GNT3 -> PCI slot
	 */
	__raw_writew(0x0213, FPGA_REQSEL);

	/* GPIO setting */
	__raw_writew(0x0000, GPIO_PECR);
	__raw_writew(__raw_readw(GPIO_PHCR)&0xfff3, GPIO_PHCR);
	__raw_writew(0x0c00, GPIO_PMSELR);

	/* iVDR Power ON */
	__raw_writew(0x0001, FPGA_IVDRPW);
}

/*
 * The Machine Vector
 */
static struct sh_machine_vector mv_se7780 __initmv = {
	.mv_name                = "Solution Engine 7780" ,
	.mv_setup               = se7780_setup ,
	.mv_init_irq		= init_se7780_IRQ,
};

Annotation

Implementation Notes