arch/mips/sibyte/swarm/platform.c

Source file repositories/reference/linux-study-clean/arch/mips/sibyte/swarm/platform.c

File Facts

System
Linux kernel
Corpus path
arch/mips/sibyte/swarm/platform.c
Extension
.c
Size
3565 bytes
Lines
141
Domain
Architecture Layer
Bucket
arch/mips
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(swarm_pata_init);

#endif /* defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_LITTLESUR) */

#define sb1250_dev_struct(num) \
	static struct resource sb1250_res##num = {		\
		.name = "SB1250 MAC " __stringify(num),		\
		.flags = IORESOURCE_MEM,			\
		.start = A_MAC_CHANNEL_BASE(num),		\
		.end = A_MAC_CHANNEL_BASE(num + 1) - 1,		\
	};\
	static struct platform_device sb1250_dev##num = {	\
		.name = "sb1250-mac",				\
		.id = num,					\
		.resource = &sb1250_res##num,			\
		.num_resources = 1,				\
	}

sb1250_dev_struct(0);
sb1250_dev_struct(1);
sb1250_dev_struct(2);
sb1250_dev_struct(3);

static struct platform_device *sb1250_devs[] __initdata = {
	&sb1250_dev0,
	&sb1250_dev1,
	&sb1250_dev2,
	&sb1250_dev3,
};

static int __init sb1250_device_init(void)
{
	int ret;

	/* Set the number of available units based on the SOC type.  */
	switch (soc_type) {
	case K_SYS_SOC_TYPE_BCM1250:
	case K_SYS_SOC_TYPE_BCM1250_ALT:
		ret = platform_add_devices(sb1250_devs, 3);
		break;
	case K_SYS_SOC_TYPE_BCM1120:
	case K_SYS_SOC_TYPE_BCM1125:
	case K_SYS_SOC_TYPE_BCM1125H:
	case K_SYS_SOC_TYPE_BCM1250_ALT2:	/* Hybrid */
		ret = platform_add_devices(sb1250_devs, 2);
		break;
	case K_SYS_SOC_TYPE_BCM1x55:
	case K_SYS_SOC_TYPE_BCM1x80:
		ret = platform_add_devices(sb1250_devs, 4);
		break;
	default:
		ret = -ENODEV;
		break;
	}
	return ret;
}
device_initcall(sb1250_device_init);

Annotation

Implementation Notes