linux 3.10 hisi i2c设备板级描述信息device及驱动driver

drivers/i2c/i2c-dev.c处驱动为用户空间驱动i2c方法。
查看名字 # cat /sys/class/i2c-dev/i2c-0/name
hisi_i2c 可以通过这个名字来查找到设备源码
drivers/i2c/busses/i2c-hisilicon.c:#define HI_I2C “hisi_i2c”
///
drivers/i2c/busses/i2c-hisilicon.c
#define HI_I2C “hisi_i2c”

///
drivers/i2c/busses/i2c-hisilicon.c
module_init(hi_i2c_module_init);
static int __init hi_i2c_module_init(void)
{
int ret;

//device和driver放在了同一个文件里面来了,三星可不是这么搞得,海思为何这么搞???
ret = platform_add_devices(hi_i2c_devices, ARRAY_SIZE(hi_i2c_devices));
if (ret) {
hi_err(“i2c device register failed!\n”);
return ret;
}

ret = platform_driver_register(&hi_i2c_driver);
 return ret;

}
///
//这里就是板级别设备信息
drivers/i2c/busses/i2c-hisilicon.c
static struct platform_device *hi_i2c_devices[] __initdata = {
#ifdef CONFIG_HI_I2C0
&hi_i2c0_device,
#endif
#ifdef CONFIG_HI_I2C1
&hi_i2c1_device,
#endif
};

//
//这里就是板级别设备信息device
drivers/i2c/busses/i2c-hisilicon.c
#ifdef CONFIG_HI_I2C0
static struct resource hi_i2c0_resources[] = {
[0] = {
.start = CONFIG_HI_I2C0_IO_BASE,
.end = CONFIG_HI_I2C0_IO_BASE
+ CONFIG_HI_I2C0_IO_SIZE - 1,
.flags = IORESOURCE_MEM,
},
};

struct hi_platform_i2c hi_i2c0_platform_data = {
.clk_limit = CONFIG_HI_I2C0_CLK_LIMIT,
.i2c_class = I2C_CLASS_DDC,
};

struct platform_device hi_i2c0_device = {
.name = HI_I2C,
.id = 0,
.resource = hi_i2c0_resources,
.num_resources = ARRAY_SIZE(hi_i2c0_resources),
.dev = {
.platform_data = &hi_i2c0_platform_data,
}
};
#endif
/
这里是驱动driver
drivers/i2c/busses/i2c-hisilicon.c
static struct platform_driver hi_i2c_driver = {
.probe = hi_i2c_probe,
.remove = hi_i2c_remove,
.suspend = hi_i2c_suspend,
.resume = hi_i2c_resume,
.driver = {
.owner = THIS_MODULE,
.name = HI_I2C,
},
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xx-xx-xxx-xxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值