一个platform总线型的i2c设备的注册

本文详细介绍了在MIPS架构下,如何在platform子目录中定义板级i2c设备的信息,并揭示了i2c设备驱动注册的具体步骤和函数调用顺序。
摘要由CSDN通过智能技术生成

首先在板级目录下 arch/mips/platform 定义设备信息


static struct resource ls2h_i2c0_resources[] = {
	[0] = {
		.start = LS2H_I2C0_REG_BASE,
		.end   = LS2H_I2C0_REG_BASE + 0x8,
		.flags = IORESOURCE_MEM,
	},
	[1] = {
		.start = LS2H_I2C0_IRQ,
		.end   = LS2H_I2C0_IRQ,
		.flags = IORESOURCE_IRQ,
	},
};

static struct platform_device ls2h_i2c0_device = {
	.name           = "ls2h-i2c",
	.id             = 0,
	.num_resources  = ARRAY_SIZE(ls2h_i2c0_resources),
	.resource       = ls2h_i2c0_resources,
};

而且这里还定义了一个设备结构体
static struct platform_device *ls2h_platform_devices[] = {
	&uart8250_device,
	&ls2h_i2c0_device,
	&ls2h_i2c1_device,
	&ls2h_nand_device,
	&ls2h_ohci_device,
	&ls2h_ehci_device,
	&ls2h_gmac0_device,
	&ls2h_gmac1_device,
	&ls2h_ahci_device,
	&ls2h_dc_device,
	&ls2h_audio_device,
#if     !defined(CONFIG_CPU_LOONGSON3) || !defined(CONFIG_SUSPEND)
	&ls2h_otg_device,
#endif
	&ls2h_rtc_device,
	&ls2h_gpu_device,
};
结构体中的设备都会通过函数ls2h_platform_init(也在这个文件中)被注册到系统中。


大概看一下这个函数做
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值