说明:
rtc时钟驱动将大部分通用部分在rtc-dev.c文件中实现.通用部分实现了file_operations,并导出了rtc_class_ops结构,rtc_device_register
rtc_device_unregister函数,底层部分只要实现rtc_class_ops即可.
变量:
rtc_class_ops{
open
release
ioctl
read_time
set_time
read_alarm
set_alarm
irq_set_freq
irq_set_state
proc
}
函数:
rtc_device_register(char *name,device *dev,rtc_class_ops *class,MODULE)
rtc_decice_ungister
用法:
实现 rtc_class_ops中的函数
xx_read_time{
}
xx_set_time{
}
rtc_class_ops xx_class_ops={
.read_time=xx_read_time;
.set_time=xx_set_time;
}
xx_probe(struct platform_device*pdev){
…
rtc_device_register(name,pdev->dev,&xx_class_ops,THIS_MODULE);
}
xx_driver={
driver={
.name=”xx”;
.owner=THIS_MODULE;
}
.probe=xx_probe;
.remove
.id_table
}
xx_init(void){
i2c_add_driver(&xx_driver);
或者spi_register_driver
或者其他类似的驱动函数
}
xx_exit(void){
i2c_del_driver(&xx_driver);
或者spi_unregister_driver
或者其他类似的驱动函数
}